0

使用:windows xp、g++ 3.4.4 和 cygwin 和 g++ 3.4.5 和 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 中的相同代码:没有错误,单元测试按预期运行。

4

3 回答 3

0

随着 g++ 的成熟,我在 4.2.3 上,它的类型检查变得更加迂腐,并且更好。我想说的信息很少,您可能应该仔细查看对这些方法的调用。我怀疑类型不太正确。3.4.4 没有捕捉到它,3.4.5 捕捉到了。....JW

于 2009-05-11T17:20:06.720 回答
0

您或许可以尝试的一件事是在 Linux 上使用 g++ 3.4.5 和/或 3.4.4 进行编译。如果结果相同,那么它显然是 gcc 的一个属性。否则,这听起来更像是一个 mingw 问题。

于 2009-05-11T20:17:10.723 回答
0

您的问题可能是不正确的链接行。链接行上的源/目标文件和库的顺序很重要。正确的链接行:

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
于 2009-05-12T06:32:17.957 回答