1

尝试在 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 上进行编译

4

1 回答 1

1

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

于 2012-11-15T22:42:00.407 回答