ホームページ >バックエンド開発 >C++ >CMake でインクルード ディレクトリとヘッダーの依存関係を適切に管理する方法は?

CMake でインクルード ディレクトリとヘッダーの依存関係を適切に管理する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 15:43:10562ブラウズ

How to Properly Manage Include Directories and Header Dependencies in CMake?

CMake でインクルード ディレクトリを適切に追加する

CMake では、プロジェクトを効果的にコンパイルするために、インクルード ディレクトリとヘッダーの依存関係を管理することが重要です。この記事では、生成された Makefile によってインクルードおよび追跡されるヘッダーが特定のディレクトリに含まれていることを CMake に正しく通知する方法について説明します。

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

ヘッダーを含むディレクトリをインクルードするには、次のコマンドを使用します。

target_include_directories(test PRIVATE ${YOUR_DIRECTORY})

古い CMake バージョンを使用している場合は、 target_include_directories はサポートされていません。代わりに従来の include_directories を使用してください。

include_directories(${YOUR_DIRECTORY})

ヘッダーの依存関係の追跡

ヘッダーの依存関係を追跡するには、ヘッダー ファイルを現在のターゲットのソース ファイルのリスト:

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

これにより、ヘッダー ファイルは Makefile およびその他の生成されたプロジェクト ファイルに依存関係として表示され、コンパイル中に確実に含まれるようになります。

複数のターゲットにヘッダーを使用する

同じヘッダーを使用するには複数のターゲットにまたがるファイルを使用するには、次の手順に従います。

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 プロジェクトのインクルード ディレクトリとヘッダーの依存関係を効果的に管理できます。

以上がCMake でインクルード ディレクトリとヘッダーの依存関係を適切に管理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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