我有一个在Linux下构建的没有问题的应用程序,现在我正在尝试在Windows上编译它,我创建了一个专门用于在windows下编译它的.pro文件。
我使用了一个伪类(只是一个带有大量方法的命名空间,但没有class语句,这样我就可以在不创建对象的情况下使用它),但当我尝试在windows上编译时,在使用这个伪类的所有代码中都会得到一个‘未解析的外部符号’。
伪类是这样的:
namespace foo {
bool method_bar();
}然后我像这样使用它:
foo:method_bar(); 非常简单,有点像静态方法。
在有人问我为什么不首先使用静态方法之前,我有一些特殊的情况,在这些情况下我不能将这些方法用作静态方法。这就是为什么我直接在名称空间下构建方法的原因。
因此,在我的.PRO文件中,我添加了来自伪类的.h和.cpp文件,如下所示:
HEADERS += \
....
include/foo.h
....
SOURCES += \
....
include/foo.cpp
----尽管它包含了我的项目中的文件,但它抛出了LNK2019: unresolved symbol错误。
我不是编程的初学者,但我是Qt的初学者。
任何帮助都将深表感谢。
附言:请原谅我的英语错误。
发布于 2012-10-17 02:31:07
首先,作用域运算符是foo"::"method_bar();
确保在使用函数之前包含标头,以便调用此函数的位置知道该函数的声明
在QT中使用命名空间是没有问题的。
另一个建议是
使用命名空间foo;
查看完整的代码将真正帮助我解决这个问题
https://stackoverflow.com/questions/12916860
复制相似问题