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

2022-03-25 19:31:55 字數 525 閱讀 9784

在使用iar,keil寫微控制器時,都可以先#define乙個變數,然後根據變數的不同值編譯不同的**

在qt裡也可以這樣,針對嵌入式的程式,一般是會在x86上編譯,debug,然後再部署到arm去跑,這樣,x86與arm之間,可能就會有一些差異,如不同的平台,呼叫不同的庫,這樣就可以先#define乙個變數,再根據變數去自動包含需要編譯的東西。

首先在project settings裡增加build 引數defines:如我增加專門針對arm板上跑的引數defines+=arm

在原始檔裡就可以直接使用條件判斷

#ifdef arm

// arm use only

qwsserver::setcursorvisible(false);

#endif

在pro檔案裡也可以使用:

if(contains(defines,arm))else

Qt設定根據編譯器不同鏈結不同的lib庫

我們知道qt的pro工程檔案中可以編寫編譯條件,根據不同的條件生成不同的編譯指令,常用的是根據系統的不同包含不同的原始檔,如 win32 linux除了原始檔,鏈結的lib檔案也需要在pro中指定,而在windows平台中,可選的編譯器有msvc和mingw兩種,且這兩種編譯器的庫檔案不能通用,那麼...

DataTemplate 根據條件選擇不同模板

msdn datatemplate 為了不同的條件選擇模板,可以實現乙個datatemplateselector。1 模板選擇器是繼承自datatemplateselector,並重寫了selecttemplate方法並返回所需要的模板的類 public class persontemplatese...

oracle根據不同條件給字段賦不同的值

話不多說,先貼 declare cursor my cur is select t.empno,t.deptno,t.sal from scott.emp t where t.empno 7698 for update of sal 鎖定sal這一列,不允許其他session更新sal列的資料 nu...