ホームページ >バックエンド開発 >C++ >CMake でヘッダー インクルード ディレクトリを適切に構成するにはどうすればよいですか?

CMake でヘッダー インクルード ディレクトリを適切に構成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 14:27:10543ブラウズ

How to Properly Configure Header Include Directories in CMake?

CMake でヘッダー インクルード ディレクトリを構成する

CMake のヘッダー依存関係管理を理解する

CMake は最初にプロジェクト外のヘッダー ファイルを扱いますディレクトリを外部リソースとして使用します。この動作により、生成されたプロジェクトで依存関係追跡の問題が発生する可能性があります。

解決策: インクルード ディレクトリの指定

ヘッダーを適切にインクルードするには、次の 2 つの手順が必要です。

  1. インクルードの追加ディレクトリ:

    • 最近の CMake バージョン (例: 3.0 ) の場合は target_include_directories を使用します:

      target_include_directories(test PRIVATE ${YOUR_DIRECTORY})
    • 古い CMake バージョンの場合 (例: 、2.8.10 以前、なしtarget_include_directories サポート):

      include_directories(${YOUR_DIRECTORY})
  2. ターゲット ソース リストにヘッダー ファイルを含める:

    依存関係を追跡するには、以下を追加しますヘッダー ファイルをソース リストに追加します。ターゲット:

    set(SOURCES file.cpp file2.cpp ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)
    add_executable(test ${SOURCES})

例: ヘッダーを複数のターゲットにリンクする

複数のターゲット間でヘッダー ファイルを共有するには:

set(HEADER_FILES ${YOUR_DIRECTORY}/file1.h ${YOUR_DIRECTORY}/file2.h)

add_library(mylib libsrc.cpp ${HEADER_FILES})
target_include_directories(mylib PRIVATE ${YOUR_DIRECTORY})
add_executable(myexec execfile.cpp ${HEADER_FILES})
target_include_directories(myexec PRIVATE ${YOUR_DIRECTORY})

以上がCMake でヘッダー インクルード ディレクトリを適切に構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。