c++ - 我如何在 Qt 中选择构建选项

标签 c++ qt cross-compiling

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

x86 {
INCLUDEPATH += fo
LIBS += fo
DEFINES += CONFIG_ARM }
arm {
INCLUDEPATH += foo1
LIBS += foo2
DEFINES += CONFIG_ARM }

最佳答案

在您的 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
}

如果您的目标是 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)

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

关于c++ - 我如何在 Qt 中选择构建选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49271301/

相关文章:

python - QWebEngineView 使用 setHtml(...) 加载 SVG 失败

gcc - 使用 Yocto 交叉编译 GCC 和 GDB

linux - 交叉编译外部linux模块: M =`pwd` directory not found

c++ - Process Explorer 使用哪个 winapi 函数来挂起进程?

c++ - 编译器警告转换

c++ - 将 cv::Mat 转换为无符号整型像素

c++ - QFileDialog (QT 5.2.1/mingw32) 不允许我选择只读文件

c++ - 拖放带有组合框的列表小部件项目

Rust Cargo 为特定 CPU 构建和交叉编译

c++ - 使用初始化列表初始化成员数组的正确方法是什么?