【发布时间】:2013-06-04 12:20:09
【问题描述】:
我正在我的 Qt 创建器中创建两个 c++ 项目。第一个是Application project,另一个是unit-test project。这两个项目分别工作正常。但是,当将两者联系在一起时,我遇到了一个小问题。
我在.pro file 中包含#INCLUDEPATH applicationProjectPath 在unit-test project 中。然后#include myClass 来自unit-test project 的main.cpp 中的应用程序项目。然后,从myClass 创建一个myObject 并在该对象中调用一个函数。
编译时出现这个错误:
undefined reference to `myObject::function'
但是,当将 #SOURCES applicationProjectPath/myClass.cpp 添加到单元测试项目的 .pro 文件中时(同时保留 #INCLUDEPATH applicationProjectPath),一切正常(即:执行测试单元)
再次从 .pro 中删除 #INCLUDEPATH 时,它再次崩溃。
我想如果我包含了#SOURCES,那么我就不需要包含#INCLUDEPATH。如果我包含#INCLUDEPATH,我不应该包含#SOURCES(至少不包含完整路径,只有.cpp 文件,然后编译器应该查找两个目录,默认目录和添加的目录)。
所以,我的问题是:为什么会发生这种情况
【问题讨论】:
-
抱歉,当您从 *.pro 中删除
#INCLUDEPATH时,您的程序会崩溃,或者您会像以前一样遇到编译错误?undefined reference to ...
标签: c++ qt unit-testing qt-creator include-path