CMakeLists 實現動態巨集開關

2021-10-03 03:51:39 字數 724 閱讀 3302

最近在工作中需要通過乙份c**控制邏輯走向,網上找了一下資料,發現可以通過在cmakelists檔案中動態定義巨集開關,從而能夠達到編譯出不同邏輯流的**。

具體步驟:

首先,我在src**裡編寫了若干debug的輸出:

#ifdef debug

some print command;

#endif

然後,在cmakelists檔案中新增debug的定義:

if (cmake_build_type strequal debug)

add_definitions(-ddebug)

endif()

最後,在cmake的時候設定引數 -dcmake_build_type 為 debug:

$ cmake .. -dcmake_build_type=debug

$ make -j4

這樣再執行可執行檔案時就會列印出some print command的debug資訊了。如果不想看到debug資訊,只需在引數中不設定debug引數,或者將debug引數設定為其它值即可(以下兩種方式二者選其一):

$ cmake ..

$ cmake .. -dcmake_build_type=release

到此 cmakelists 實現動態巨集開關介紹完成。

動態巨集的使用

背景需求 如何實現,當有兩個引數的時候,以訂單id和貨主地區為例 條件1 當輸入id不輸入地區的時候,只過濾id 當輸入地區不輸入id的時候,只過濾地區 條件2 當兩個都不輸入的時候,查詢全部 條件3 當兩個都輸入的時候,查詢出同時符合這兩個條件的資料。我們如果寫 where 訂單id or is ...

qtp動態載入巨集

說明 本文例子基於excel2010,其他版本類似 一 eom模型 在學習巨集前,先了解下什麼是eom模型。說明 workbooks 此物件引用當前開啟的所有excel工作簿集合 workbook 此物件引用單個已開啟的excel工作簿物件 worksheets 此物件引用已開啟且被選中的工作簿中的...

實現巨集offsetof

offsetof 型別,成員 返回成員偏移量 具有函式形式的此巨集返回資料結構或聯合型別型別中成員成員的偏移值 以位元組為單位 返回的值是size t型別的無符號整數值,以及指定成員與其結構開頭之間的位元組數。定義乙個結構體指標s a 未初始化的這個指標是乙個野指標 並沒有指向有效合法的記憶體空間 ...