arn*_*rne 9 qt translation namespaces internationalization
我使用lupdate v4.7.2遇到了一个非常奇怪的错误.我收到了错误消息
module/foo.cpp:6:使用unknown namespace/class :: foo进行限定
对于一个有大约50个班级的项目中的几个班级.我将问题归结为一个简单的例子:
SRC/project.pro:
QT += core
TARGET = test
TEMPLATE = app
SOURCES += main.cpp \
screen.cpp
HEADERS += screen.h
TRANSLATIONS += de.ts
Run Code Online (Sandbox Code Playgroud)
SRC /模块/ foo.h中:
namespace sp {
class foo {
initWidgets();
};
} // namespace sp
Run Code Online (Sandbox Code Playgroud)
SRC /模块/ Foo.cpp中:
#include <QString>
#include "module/foo.h"
namespace sp {
foo::initWidgets() {
QString bar = tr("bar");
}
} // namespace sp
Run Code Online (Sandbox Code Playgroud)
main.cpp中有一个空的main函数.
代码编译(除非我可能在这里产生任何copypasta错误),所以语法基本上是正确的.
答案是lupdate在解析foo.cpp时无法找到头文件foo.h.使用以下行扩展.pro文件可以解决此问题:
INCLUDEPATH += .
Run Code Online (Sandbox Code Playgroud)
但是,令我困扰的是编译器应该无法编译代码,但不知何故,qmake -I.在编译器选项中添加了一个.这就是为什么我之前没有想到包含文件的问题,花了几个小时来解决这个问题.有谁知道这是否是默认行为?另外:为什么lupdate不会发出相应的错误消息?
| 归档时间: |
|
| 查看次数: |
3886 次 |
| 最近记录: |