我如何在Qt中选择构建选项
How i can select build options in Qt
我正在尝试为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)
然后检查消息选项卡以查看每个变量中的内容。
平台/架构在Qt安装路径的mkspecs
文件夹中定义:$QTDIR/mkspecs
例如:
C:Qt5.10.0mingw53_32mkspecs
//Qt 窗口
~/Qt/5.10.1/gcc_64/mkspecs
//Qt Linux
Qt使用QMAKE_PLATFORM
...QMAKE_TARGET
..可识别平台/架构的指令,因此您可以通过查看文件夹下与您的工具包对应的文件来了解您的特定平台/架构是否具有定义的标签mkspecs/common
例如列出Qt版本中的所有支持的平台标签:
cd C:Qt5.10.0mingw53_32mkspecscommon
find "QMAKE_PLATFORM" *.conf | find "="
QMAKE_PLATFORM = integrity
QMAKE_PLATFORM = integrity
QMAKE_PLATFORM = integrity
QMAKE_PLATFORM += ios
QMAKE_PLATFORM += linux
QMAKE_PLATFORM += mac darwin
QMAKE_PLATFORM += macos osx macx
QMAKE_PLATFORM = win32
QMAKE_PLATFORM = qnx $$QMAKE_PLATFORM
QMAKE_PLATFORM += solaris
QMAKE_PLATFORM += tvos
QMAKE_PLATFORM += uikit
QMAKE_PLATFORM += unix posix
QMAKE_PLATFORM += watchos
并列出所有支持的架构标签:
find "QMAKE_TARGET" *.conf | find "QMAKE_TARGET"
contains(QMAKE_TARGET.arch, x86_64) {
contains(QMAKE_TARGET.arch, x86_64) {
在 .pro 文件中,您可以根据所使用的平台定义特定设置,例如要使用的库、包含路径等。不过,我不确定 x86 是否是有效的标识符。它应该是 WIN32,或者从 Qt5 开始:
contains(QT_ARCH,i386)
无论如何,您正在尝试为完全不同的特定平台进行编译。您正在寻找的是完成这项工作的正确编译器。在设置对话框("构建"和"运行"选项中的"工具包"选项卡(中查看套件详细信息。在那里,您可以选择您选择的编译器。如果编译器不存在,则必须安装它。
- C++为构建时间获取QDateTime的可靠方法
- 如果使用平台工具集构建应用,则 CCheckListBox 项在选择时会重叠'Visual Studio 2017 (v141)'
- 选择在CMAKE中构建库或可执行文件
- 我如何在Qt中选择构建选项
- 如何使用选择正确检测我是在Windows还是Linux中构建C 代码
- Delphi / C 构建器 - 在TDBGrid中设置活动 /选择的行颜色
- 在使用Bazel Build构建项目期间,处理/选择界面的不同实现
- Qt中C++构建器的TS选择替代方案
- C 编译器可以在用户定义和编译器生成的复制构建器之间进行自由选择
- 选择C++主函数在eclipse中构建
- 如何从构建目录中选择源(如果可用),否则使用源目录
- 在提升构建中根据操作系统选择编译器选项
- 如何使Sublime Text自动选择自定义构建系统
- 我有什么选择来构建一个在XP及更高版本上运行但具有最新功能的WTL程序
- 使用Makefile构建:即使明确指定,也会选择file.c而不是file.cpp
- DistCC和CMake-运行make时在本地构建和分布式构建之间进行选择
- Qt保持构建共享构建无论我选择什么选项
- 选择在构建/调试时首先显示源文件(.cpp)
- 如何选择autoconf构建目录
- Qt Creator的智能感知 #ifdef _DEBUG 块变灰,即使选择了调试构建