为什么Qt Creator无法链接到我自己的代码?

时间:2012-11-15 22:31:45

标签: c++ linker g++ qt-creator

尝试在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

1 个答案:

答案 0 :(得分:1)

这是模板代码,你不能将定义分成.cpp,你必须将所有代码放在一个文件中