c++ - 为什么 Qt Creator 不能链接到我自己的代码?

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

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

相关文章:

c++ - 将在堆栈上声明的元素添加到静态数组

c# - 从 WinDev 调用 DLL 方法

c++ - C++98 中的自定义 dynamic_pointer_cast 实现

c++ - 强制 Clang 链接到 C++ 运行时

c++ - 完全重建后奇怪的段错误消失了

c++ - 字段初始值设定项不是常量 g++ 4.8.4

c++ - 如何用android ndk 20编译jrtplib

c++ - 为什么将全局变量和静态变量初始化为其默认值?

c - 为没有 .so 文件的共享库构建

c++ - Netbeans makefile : Trouble compiling . h 文件