Qt pro文件中判断 x86/arm(aarch64)交叉编译环境,区分 linux/windows系统, debug/release版本

使用的arm编译器为aarch64, 很多博客都是使用 QMAKE_HOST.arch 进行判断,但这并不能分辨出 aarch64 编译器,有的更离谱的是定义一个函数,实在让人无言,自行尝试解决方案如下:

contains(QT_ARCH, arm64){
message("arm64") #在这里处理arm64所需
}else{
message("x86")
}

linux/windows 区分:

win32{
//do something...
}
unix{
//do something...
}

debug / release 区分:

CONFIG += debug_and_release
CONFIG(debug, debug|release){  //处理debug
}else{  //处理release
}

都可以组合使用,如:

CONFIG += debug_and_release
CONFIG(debug, debug|release){  //处理debug
    win32{
    }
    unix{
    	contains(QT_ARCH, arm64){
			message("arm64")
			}else{
			message("x86")
			}
    }
}else{     //处理release
    win32{
    }
    unix{
    }
}
Running /usr/bin/cmake -S /media/HUAWEI/DATA1/QT_Project/untitled -B /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra '-GUnix Makefiles' -DCMAKE_BUILD_TYPE:String=Debug -DQT_QMAKE_EXECUTABLE:STRING=/usr/lib/qt5/bin/qmake -DCMAKE_PREFIX_PATH:STRING=/usr -DCMAKE_C_COMPILER:STRING=/usr/bin/aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER:STRING=/usr/bin/aarch64-linux-gnu-g++ in /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra. -- The CXX compiler identification is GNU 9.3.0 -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done CMake Error at /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5Gui_ApngImagePlugin.cmake:4 (_populate_Gui_plugin_properties): _populate_Gui_plugin_properties Macro invoked with incorrect arguments for macro named: _populate_Gui_plugin_properties Call Stack (most recent call first): /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:240 (include) /usr/lib/aarch64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:111 (find_package) /usr/lib/aarch64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package) CMakeLists.txt:28 (find_package) -- Configuring incomplete, errors occurred! See also "/tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra/CMakeFiles/CMakeOutput.log". CMake process exited with exit code 1. Elapsed time: 00:00. Running /usr/bin/cmake -S /media/HUAWEI/DATA1/QT_Project/untitled -B /tmp/QtCreator-lMcnFP/qtc-cmake-GjrUFBur '-GUnix Makefiles' -DCMAKE_BUILD_TYPE:String=Release -DQT_QMAKE_EXECUTABLE:STRING=/usr/lib/qt5/bin/qmake -DCMAKE_PREFIX_PATH:STRING=/usr -DCMAKE_C_COMPILER:STRING=/usr/bin/aarch64-linux-gnu-gcc -DCMAKE_CXX_COMPILER:STRING=/usr/bin/aarch64-linux-gnu-g++ in /tmp/QtCreator-lMcnFP/qtc-cmake-GjrUFBur. -- The CXX compiler identification is GNU 9.3.0 -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info Running /usr/bin/cmake -S /media/HUAWEI/DATA1/QT_Project/untitled -B /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra in /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra. CMake Error at /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5Gui_ApngImagePlugin.cmake:4 (_populate_Gui_plugin_properties): _populate_Gui_plugin_properties Macro invoked with incorrect arguments for macro named: _populate_Gui_plugin_properties Call Stack (most recent call first): /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:240 (include) /usr/lib/aarch64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:111 (find_package) /usr/lib/aarch64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package) CMakeLists.txt:28 (find_package) -- Configuring incomplete, errors occurred! See also "/tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra/CMakeFiles/CMakeOutput.log". CMake process exited with exit code 1. Elapsed time: 00:00. Running /usr/bin/cmake -S /media/HUAWEI/DATA1/QT_Project/untitled -B /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra in /tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra. -- Configuring incomplete, errors occurred! See also "/tmp/QtCreator-lMcnFP/qtc-cmake-KCtqqVra/CMakeFiles/CMakeOutput.log". CMake Error at /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5Gui_ApngImagePlugin.cmake:4 (_populate_Gui_plugin_properties): _populate_Gui_plugin_properties Macro invoked with incorrect arguments for macro named: _populate_Gui_plugin_properties Call Stack (most recent call first): /usr/lib/aarch64-linux-gnu/cmake/Qt5Gui/Qt5GuiConfig.cmake:240 (include) /usr/lib/aarch64-linux-gnu/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:111 (find_package) /usr/lib/aarch64-linux-gnu/cmake/Qt5/Qt5Config.cmake:28 (find_package) CMakeLists.txt:28 (find_package) CMake process exited with exit code 1. Elapsed time: 00:00.
10-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为啥不吃肉捏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值