使用:windows xp,g ++ 3.4.4 with cygwin和g ++ 3.4.5 with mingw。
我正在使用cppunit编译一个简单的单元测试类。
当我使用g ++ 3.4.5链接时,我收到很多链接错误。当我链接到g ++ 3.4.4时,我没有得到任何错误,exe链接很好并运行。
我似乎无法追查错误,所以有什么想法吗?
感谢。
编辑:链接错误:未引用的函数错误。喜欢:
SimpleTest.cpp:(.text+0x313): undefined reference to `CppUnit::Message::Message(std::string const&, std::string const&)'
编辑:cmd行:
g++ -I g:\projects\thirdparty\cppunit-1.12.1\include -L g:\projects\thirdparty\cppunit-1.12.1\lib -l cppunitd -o main.exe main.cpp SimpleTest.cpp
更新:Visual Studio中的相同代码:没有错误,单元测试按预期运行。
答案 0 :(得分:0)
随着g ++的成熟,我在4.2.3,它的类型检查变得更加迂腐,并且更好。有了这些信息,我会说你应该密切关注你对这些方法的调用。我怀疑这些类型并不完全正确。 3.4.4没有捕获它,3.4.5确实如此。 .... JW
答案 1 :(得分:0)
您可能尝试的一件事是在Linux上使用g ++ 3.4.5和/或3.4.4进行编译。如果结果是相同的,那么它显然是gcc的属性。否则它听起来像是一个明星问题。
答案 2 :(得分:0)
您的问题可能是错误的链接线。链接行matters上的源/目标文件和库的顺序。正确的链接线:
g++ -I g:\projects\thirdparty\cppunit-1.12.1\include \
-L g:\projects\thirdparty\cppunit-1.12.1\lib \
-o main.exe main.cpp SimpleTest.cpp -lcppunitd