尝试在Qt Creator 2.4.1中编译项目时出现异常错误。它编译得很好,直到它需要链接我的代码,它说“未定义参考'XXX'”其中“XXX”是一个文件,它编译得很好,我写了所以我知道它似乎不能的功能找到存在。这是一个例子(以防我刚刚描述的内容没有意义): 未定义引用`ESanity NSane :: CSane :: ArgumentCheck(int)'
这是我编写和编译的代码:
宣言(课堂上)
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在Qt Creator 2.4.1上编译Xubuntu 12.04 LTS
答案 0 :(得分:1)
这是模板代码,你不能将定义分成.cpp,你必须将所有代码放在一个文件中