我有一些在Visual Studio上运行良好的代码,现在我正试图在g ++上编译它。它在一堆地方给我'对SomeClass :: someMethod()const'的未定义引用。g ++在visual studio很高兴的时候给出错误 - 未定义的参考
最常见的,它是以下情况:
for (const SomeListNode *node = owner->some_list; node != 0; node = node->getNext())
在这种情况下,我得到 '未定义参考SomeListNode :: GETNEXT()const的'。这个类的头文件是明确包含的。为什么这在g ++中不合法?
编辑更多信息
我有一个makefile建立这样:
CC=g++
CFLAGS=-c -Wall -DDEBUG -g
LDFLAGS=
SOURCES=main.cpp SomeList.cpp SomeListNode.cpp Location.cpp OutputControl.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=theprogram
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o [email protected]
.cpp.o: $(CC)$(CFLAGS)$ < -o $ @
最初列出的代码行在OutputControl.cpp
。它正在指向一个SomeListNode
并重复它。 getNext
()返回指向另一个SomeListNode
的指针。
也可能会注意到,这只发生在静态函数中。
这看起来像你实现了你自己的链表。你确定你不想使用'std :: list'吗? – 2011-03-04 09:21:08
@ Space_C0wb0y你说得对,虽然我会修改它很多,并专注于它。从我完成C++开始已经有一段时间了,所以我正在逐步回到它。 – socks 2011-03-04 09:22:32
请编辑您的问题以包含涉及.cpp文件的列表以及您使用的编译/链接命令行。 – Erik 2011-03-04 09:30:07