首頁 > 後端開發 > C++ > 如何存取 C 原始程式碼中的 CMake 變數?

如何存取 C 原始程式碼中的 CMake 變數?

Linda Hamilton
發布: 2024-11-02 16:23:02
原創
1092 人瀏覽過

How to Access CMake Variables in C   Source Code?

在C 原始程式碼中存取CMake 變數

問題:
CMake 變數如何,例如VERSINTERFACE可以在C 原始碼中存取和使用嗎?

答案:

選項1:使用add_definitions

  • 使用add_definitions()定義將CMake 變數作為傳遞變數。
  • 範例:

    <code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
    登入後複製
  • 這允許 CMake 變數在 C 程式碼中定義為巨集 (#define)。

選項 2:將 configure_file 與頭文件範本結合使用

  • 建立包含 CMake 變數的頭文件範本引用。
  • 範例:

    <code class="cmake">// version_config.h.in
    #ifndef VERSION_CONFIG_H
    #define VERSION_CONFIG_H
    
    // define your version_libinterface
    #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@
    
    // alternatively you could add your global method getLibInterfaceVersion here
    unsigned int getLibInterfaceVersion()
    {
      return @LIBINTERFACE_VERSION@;
    }
    
    #endif // VERSION_CONFIG_H</code>
    登入後複製
  • 使用configure_file()產生頭文件,並用它們的值取代CMake變數。
  • 範例:

    <code class="cmake">configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h )
    include_directories( ${CMAKE_BINARY_DIR}/generated/ ) # Make sure it can be included...</code>
    登入後複製
  • 將產生的頭檔包含在 C 原始碼中。

範例用法:

<code class="cpp">// Assuming version_config.h is included
std::string version = VERSION_LIBINTERFACE;</code>
登入後複製

注意:
configure_file() 方法更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它更具可擴展性,因為它允許將其他變數或定義新增至產生的頭檔。

以上是如何存取 C 原始程式碼中的 CMake 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板