Qt 根據不同平台的條件編譯


在使用iar,keil寫單片機時,都可以先#define一個變量,然后根據變量的不同值編譯不同的代碼

在Qt里也可以這樣,針對嵌入式的程序,一般是會在X86上編譯,Debug,然后再部署到ARM去跑,這樣,X86與ARM之間,可能就會有一些差異,如不同的平台,調用不同的庫,這樣就可以先#define一個變量,再根據變量去自動包含需要編譯的東西。

首先在Project settings里增加build 參數DEFINES:如我增加專門針對ARM板上跑的參數DEFINES+=ARM

image

在源文件里就可以直接使用條件判斷

#ifdef ARM
    // arm use only
    QWSServer::setCursorVisible(false);
#endif

在pro文件里也可以使用:


if(contains(DEFINES,ARM)){
    message("compile for arm")
    LIBS += -L../armlib -lfpp
}else{
    message("compile for x86")
    LIBS += -L../x86lib -lfpp
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM