المعرف لتكوين win64 في كماكي
سؤال
هل هناك "win64" المعرف في ملفات المشروع كماكي؟ كيو تي كماكي متقدمة الوثائق لا تذكر بخلاف يونيكس / macx / Win32 و.
وحتى الآن لقد حاولت استخدام:
win32:message("using win32")
win64:message("using win64")
amd64:message("using amd64")
وكانت النتيجة دائما "باستخدام Win32".
ولا بد لي من استخدام منفصل المشروع ملف لمشاريع بسرعة x32 و x64، لذلك فإنها تجمع ضد مكتبات الصحيحة؟ هل هناك أي طريقة أخرى لتحديد بين بيئات 32 بت و 64 بت؟
المحلول
وأفعل مثل هذا
win32 {
## Windows common build here
!contains(QMAKE_TARGET.arch, x86_64) {
message("x86 build")
## Windows x86 (32bit) specific build here
} else {
message("x86_64 build")
## Windows x64 (64bit) specific build here
}
}
نصائح أخرى
ومنذ Qt5 يمكنك استخدام QT_ARCH
لاكتشاف ما إذا كان التكوين الخاص بك هو 32 أو 64. عندما يكون الهدف هو 32 بت، وترجع i386
وفي حالة 64 بت استهداف لها قيمة x86_64
. لذلك يمكن استخدامها مثل:
contains(QT_ARCH, i386) {
message("32-bit")
} else {
message("64-bit")
}
وUPDATE: منذ وقت قريب جدا، كيو تي لديه وسيلة للقيام بذلك بشفافية وسهولة، دون مشاحنات اليدوي:
win32-g++:contains(QMAKE_HOST.arch, x86_64):{
do something
}
ولقد برزت طريقة واحدة للقيام بذلك.
وكيو تي تسمح لك لتمرير معلمات التكوين التعسفية التي يمكنك استخدامها لفصل الأهداف.
ومن خلال وجود التكوين الشرطي في ملف المشروع:
CONFIG(myX64, myX64|myX32) {
LIBPATH += C:\Coding\MSSDK60A\Lib\x64
} else {
LIBPATH += C:\Coding\MSSDK60A\Lib
}
ووتمرير هذا التكوين مخصص لqmake
مع
qmake CONFIG+=myX64
ويمكنك الحصول على نتيجة المطلوبين.
لا، ولكن يمكنك إنشاء واستخدام mkspec جديدة، وأعتقد أن كماكي يعرف أيضا معرف منصة اسمه بعد mkspec الحالية. لماذا تحتاج لاختبار 64 بت؟
وريد