سؤال

هل هناك "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 بت؟

وريد

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top