c++ - Qt 中的非类方法(使用 qtcreator)未解析的外部符号

标签 c++ qt lnk2019

我有一个在 Linux 中构建的应用程序没有问题,现在我正在尝试针对 Windows 编译它,我创建了一个专门用于在 Windows 中编译它的 .pro 文件。

我使用了一个伪类(只是一个带有许多方法的命名空间,但没有类语句,所以我可以在不创建对象的情况下使用它)在 Linux 中工作得很好,但是 当我尝试针对 Windows 进行编译时,我在使用此伪类的所有代码中得到一个“未解析的外部符号”。

伪类是这样的:

namespace foo {
   bool method_bar();
}

然后我这样使用它:

foo:method_bar(); 

非常简单,有点像静态方法。

在有人问我之前,为什么不首先使用静态方法;我有一些特殊情况,我不能将这些方法用作静态方法。这就是为什么我将这些方法直接放在命名空间下的原因。

因此,在我的 .PRO 文件中,我从我的伪类中添加了 .h 和 .cpp 文件,如下所示:

 HEADERS += \
       ....
       include/foo.h
       ....


    SOURCES += \
       ....
       include/foo.cpp
       ----

虽然它包含我项目中的文件,但它会抛出 LNK2019:未解析的外部符号错误。

我不是编程初学者,但我是 Qt 初学者。

任何帮助将不胜感激。

ps:请原谅我的英文错误。

最佳答案

首先作用域运算符是 foo"::"method_bar();

请注意在使用函数之前包含 header ,以便您调用此函数的地方知道函数的声明

在QT中使用命名空间没有问题。

还有一个建议是

使用命名空间 foo;

查看完整的代码确实可以帮助我解决问题

关于c++ - Qt 中的非类方法(使用 qtcreator)未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916860/

相关文章:

javascript - 为什么比较结果不一样?

c++ - 样式化 Qml 桌面组件

windows-8 - Visual Studio 2012 : Unresolved external symbol _BluetoothFindFirstRadio

c++ - 我需要在堆上创建数组以保存用户设置的特定数字

c++ - 为什么 gcc 链接器看不到我的析构函数?

c++ - QML QTQuick ChartView 将指针传递给 C++

c++ - Visual C++ LNK2005、LNK2019 中的链接器错误 - 不确定原因

c++ - 在头文件中声明类对象

C++ Conway 的生命游戏 - Cygwin 段错误(核心已转储)

模板的 C++ 链接错误,仅使用头文件,为什么?