尝试在 Qt Creator 2.4.1 中编译我的项目时出现异常错误。它编译得很好,直到它需要链接我的代码并且它说“未定义对'XXX'的引用”其中“XXX”是一个它编译得很好的文件,我写了所以我知道它似乎无法实现的功能发现存在。这是一个示例(以防万一我刚才描述的没有意义): 对 `ESanity NSane::CSane::ArgumentCheck(int)' 的 undefined reference
这是我编写和编译的代码:
声明(类里面)
template<typename Type> ESanity ArgumentCheck(Type aObj);
定义(在源代码中)
template<typename Type>
ESanity CSane::ArgumentCheck(Type aObj)
{
assert(aObj != NULL);
return aObj != NULL ? ESanity_Sane : ESanity_Insane;
}
Qt Creator(我猜它在技术上是 g++,Qt Creator 只是一个 IDE)说它不能链接到它自己的编译源,当我双击错误窗口中的错误时它也说,文件丢失,即使它打开并且我可以看到它。
请注意:我正在使用 g++ 4.6.3 在 Xubuntu 12.04 LTS 上使用 Qt Creator 2.4.1 进行编译
最佳答案
是模板代码,不能把definition单独放到.cpp里,必须把所有代码放在一个文件里
关于c++ - 为什么 Qt Creator 不能链接到我自己的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407409/