尝试在Qt Creator 2.4.1中编译项目时出现异常错误。它可以很好地编译,直到需要链接我的代码,并说“ undefined 的对'XXX'的引用”为止,其中“XXX”是一个文件,它可以很好地编译并编写,因此我知道它似乎无法实现的功能找到存在。这是一个示例(以防万一我刚才描述的没有意义):
undefined reference “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上进行编译

最佳答案

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

关于c++ - 为什么Qt Creator无法链接到我自己的代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13407409/

10-11 16:36