<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android CMake 編譯傳遞宏定義參數(shù)

          共 1379字,需瀏覽 3分鐘

           ·

          2021-10-11 08:57

          在做 C++ 需求開(kāi)發(fā)時(shí)經(jīng)常會(huì)遇到用宏定義來(lái)區(qū)分不同版本、不同平臺(tái)的功能,如下所示:

          #ifdef?DEBUG
          ????//?調(diào)用?debug?版本方法
          #elif?RELEASE
          ????//?調(diào)用?release?版本方法
          #endif

          在 debug 和 release 版本對(duì)應(yīng)的方法是不一樣的,所以要用宏來(lái)隔開(kāi)。

          那么問(wèn)題來(lái)了,這個(gè)宏定義參數(shù)是如何傳遞過(guò)來(lái)的?

          下面會(huì)介紹兩種方式來(lái)傳遞宏定義參數(shù):

          gradle 中傳遞宏參數(shù)

          gradle 中傳遞宏參數(shù)直接在 ?build.gradle 中定義就行,如下所示:

          externalNativeBuild?{
          ????cmake?{
          ????????cppFlags?'-std=c++14','-DCUSTOM_MACRO=1'
          ????}
          }

          定義了宏 CUSTOM_MACRO ,并且值為 1 ,由于宏定義主要是作為開(kāi)關(guān)使用的,所以它的值一般不是 0 就 1 。

          另外要注意宏定義的語(yǔ)法,在宏定義前面要加大寫(xiě)符號(hào) D ,還有一個(gè)橫線 - 符號(hào)別忘了。

          具體使用如下代碼所示:

          #ifdef?CUSTOM_MACRO
          ????hello?=?"Hello?from?Custom?Macro";
          #endif

          cmake 中定義宏參數(shù)

          另一種方式直接在 CMakeLists.txt 文件中去定義宏參數(shù)。

          借助 CMake 的 add_definitions 方法可以定義宏,同時(shí)也可以使用 remove_definitions 方法去取消宏定義。

          代碼如下所示:

          add_definitions(-DCMAKE_DEFINITIONS=1)
          //?取消宏定義
          //?remove_definitions(-DCMAKE_DEFINITIONS=1)

          在 C++ 也可以直接使用這個(gè)宏:

          #ifdef?CMAKE_DEFINITIONS
          ????hello?=?"Hello?from?CMake?Definitions";
          #endif

          小結(jié)

          以上就是 CMake 編譯傳遞宏定義參數(shù)的兩種方式,簡(jiǎn)單而又使用的小技巧。



          更多 NDK 開(kāi)發(fā)內(nèi)容歡迎觀看我錄制的免費(fèi)慕課網(wǎng)視頻:


          推薦我錄制的免費(fèi) Android NDK 進(jìn)階視頻


          更多技術(shù)文章歡迎閱讀:



          技術(shù)交流,歡迎加我微信:ezglumes ,拉你入技術(shù)交流群。

          推薦閱讀:

          音視頻面試基礎(chǔ)題

          OpenGL ES 學(xué)習(xí)資源分享

          開(kāi)通專輯 | 細(xì)數(shù)那些年寫(xiě)過(guò)的技術(shù)文章專輯

          NDK 學(xué)習(xí)進(jìn)階免費(fèi)視頻來(lái)了

          推薦幾個(gè)堪稱教科書(shū)級(jí)別的 Android 音視頻入門項(xiàng)目

          覺(jué)得不錯(cuò),點(diǎn)個(gè)在看唄~

          瀏覽 128
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩欧美卡一卡二 | 大香蕉国产在线 | 俺来也我也去www官网 | 精品人妻无码系列 | 青娱乐-亚洲高清视频在线观看 |