2016-05-23 6 views
2

プロジェクト正しい方法は

#include "someFolder/someFile.h" 

someFolderincludeフォルダにあります。ソースファイルのこの行があります。

私はCMakeLists.txtはこのような何かを持っている する別のプロジェクトに異なるアプローチを見てきました。その後、ソースファイルに

include_directories(${PROJECT_SOURCE_DIR}/../include/someFolder) 

#include "someFile.h" 

私は2番目を見つけます最初のものよりもよりクリーンなアプローチ。どちらが正しい方法かベストプラクティスですか?

+0

最初は「Linuxのような」ものです。 'someFolder'は.hファイルのカプセル化のようなものです。 .h名前の衝突に陥るのは難しいです。 –

+1

実際にはcmakeの質問ではありません。ビルドツールに一般化できるためです – Antonio

答えて

3

私はインクルードファイルのサブディレクトリを使用します。

この主な理由は、ファイル名の競合を避けるためです。依存関係AsomeFile.hというファイルがあり、依存関係BにもsomeFile.hというファイルがある場合、コンパイラはどのファイルを含めるべきかわからないため、問題が発生します。

同じ理由から、名前空間を使用する必要があります。可能であれば、インクルードファイルのサブディレクトリも使用する必要があります。

0

まあ、これは私が特に大きなライブラリのために、前者のアプローチを好む...私の意見では、

非常意見に基づいています。それは、著者が意図したライブラリの論理構造を示す。