【发布时间】:2011-04-13 17:50:08
【问题描述】:
我正在尝试使用 cpputest 构建一个简单的单元测试可执行文件。我已经将 cpputest 框架构建到一个静态库中,现在正试图将它链接到一个可执行文件中。但是,由于相关代码,我被绑定到一个相当复杂的 Makefile 设置中。
这是我的命令行:
/usr/bin/qcc -V4.2.4,gcc_ntoarmle_acpp-ne -lang-c++ -O2 -g -g -o Application/UnitTests/Tests/symbols/UnitTestExe -Wl,--start-group Application/UnitTests/Tests/../.objs/main.o Application/UnitTests/lib/libcpputest.a -Wl,--end-group -lm
我遇到了很多类似以下的错误:
Application/UnitTests/lib/libcpputest.a(CommandLineTestRunner.o): In function `CommandLineTestRunner::parseArguments(TestPlugin*)':
Application/UnitTests/cpputest/src/CppUTest/.objs/../CommandLineTestRunner.cpp:114: undefined reference to `operator new(unsigned int, char const*, int)'
我不知道是什么原因造成的。我不是用 C++ 免费获得 operator new 吗?
【问题讨论】:
-
根据这些信息真的很难提供帮助。尝试减少重现问题所需的条件。上面的命令行太复杂了,即使我们假设代码很简单并且没有做诸如重新定义
operator new之类的事情。 -
第一个错误是不是报了operator new错误?如果不是,第一个报告的错误是什么?
-
是的,报告的唯一错误是操作员新错误。显示的是第一个。
-
我看到未定义引用错误的情况,通常意味着不正确的链接和未提供安装库的正确路径。
-
已编辑以从命令行中删除不必要的元素。