Qt中的非类方法(带有qtcreator)未解析的外部符号

Non-class method in Qt ( with qtcreator ) unresolved external symbol

本文关键字:外部 符号 带有 类方法 Qt qtcreator      更新时间:2023-10-16

我有一个在Linux中毫无问题地构建的应用程序,现在我正试图在Windows中编译它,我创建了一个.pro文件,专门用于在Windows中进行编译。

我使用了一个伪类(只是一个包含大量方法的命名空间,但没有类语句,所以我可以在不创建对象的情况下使用它),它在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();

请确保在使用函数之前包含标头,以便调用该函数的地方都知道函数的声明

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

还有一个建议是

使用名称空间foo;

查看完整的代码将真正帮助我解决问题