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

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

Linda Hamilton
Linda Hamilton原創
2024-11-02 16:23:02974瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn