[英]Qt5: Strange compilation error while using QCommandLineParser class
對於我的應用程序,我必須派生 QtCoreApplication 並使用 QCommandLineParser。 我在一個單獨的命名空間中聲明了 QCommandLineOptions 實例,並且還想在這個命名空間中聲明解析器。 但是我得到一個我不太明白的錯誤。
namespace
{
QCommandLineParser parser;
const QCommandLineOption optA("optA", "defaultOptA");
parser.addOption(optA); <-- error: unknown type name 'parser'
}
MyApp::MyApp(int argc, char *argv[])
:QCoreApplication(argc, argv)
{
setApplicationName("My App");
}
我也嘗試過聲明一個QList<QCommandLineOption>
以便我可以添加選項並使用QCommandLineParser::addOptions
在 go 上添加解析器,但這也不起作用。
namespace
{
QList<QCommandLineOption> options;
const QCommandLineOption optA("optA", "defaultOptA");
options << optA; <-- error: unknown type name 'options'
}
MyApp::MyApp(int argc, char *argv[])
:QCoreApplication(argc, argv)
{
setApplicationName("MyApp);
}
在這兩種情況下我做錯了什么?
在命名空間聲明中不能有像parser.addOption(optA)
或options << optA
這樣的表達式。 這只是 C++ 的事情,與 ZE8801102A40AD89DDCFDCAEBF008D25Z 無關。 我建議您寧願將parser
和optA
變量放在MyApp
class 中,並在MyApp
構造函數中初始化它們
class MyApp : public QCoreApplication
{
...
private:
QCommandLineParser parser;
const QCommandLineOption optA;
};
MyApp::MyApp(int argc, char *argv[])
: QCoreApplication(argc, argv), optA("optA", "defaultOptA")
{
parser.addOption(optA);
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.