我如何在 Qt 中选择构建选项

dav*_*ton 3 c++ qt cross-compiling

我正在尝试编译一个项目x86,类似于.pro下面的代码示例文件。如何使用 x86 或 arm 进行编译?

x86 {
INCLUDEPATH += fo
LIBS += fo
DEFINES += CONFIG_ARM }
arm {
INCLUDEPATH += foo1
LIBS += foo2
DEFINES += CONFIG_ARM }
Run Code Online (Sandbox Code Playgroud)

jpo*_*o38 6

在您的 pro 文件中,以下语法应该有效:

equals(QMAKE_TARGET.arch, x86) {
    message( "It's x86" )
    # Add specific x86 stuff here
}

equals(QMAKE_TARGET.arch, arm) {
    message( "It's armeabi-v7a" )
    # Add specific arm stuff here
}
Run Code Online (Sandbox Code Playgroud)

如果您的目标是 Android,QMAKE_TARGET.arch则可能会更改为ANDROID_TARGET_ARCH. 实际上,您应该首先使用message来确定在您的情况下使用的正确变量,然后在equals语句中使用正确的变量。例如:

message (ANDROID:$$ANDROID_TARGET_ARCH)
message (HOST:$$QMAKE_HOST)
message (HOST:$$QMAKE_HOST.arch)
message (TARGET:$$QMAKE_TARGET)
message (TARGET:$$QMAKE_TARGET.arch)
Run Code Online (Sandbox Code Playgroud)

然后检查消息选项卡以查看每个变量中的内容。