[英]Where to put 3rd party header files in your source tree?
我有一個使用第3方庫的項目。 我想將與該第三方庫交互的所有代碼限制在一個特定的文件夾中。 顯然,此代碼(簡稱為Foo)需要#include
這些第三方頭文件。 當我建立該文件夾時,我需要將其鏈接到第三方的.so
文件。 我決定將第3方的內容存儲在該特定文件夾自己的include和lib目錄中。 像這樣
fooFolder/src
fooFolder/src/Foo.cpp
fooFolder/include
fooFolder/include/Foo.h // would have #include "ThirdParty.h"
fooFolder/include/ThirdParty.h
fooFolder/lib
fooFolder/lib/ThirdParty.so
fooFolder/Makefile
我的項目將變得很大。 我有自己的中央include
目錄以及一些其他文件夾。
include/
include/LOTS OF FILES HERE
fooFolder/
barFolder/
現在說我有一個Bar.cpp
在barFolder
,它需要創建一個Foo
對象。 barFolder
的makefile可能應該僅訪問中央include
目錄。 但是,它還需要#include "Foo.h"
。 那有兩個問題。 首先, Foo.h
不在中央include
目錄中。 可以通過將其移動到那里來輕松解決。
但是第二個問題是Foo.h
需要#include "ThirdParty.h"
。 我真的不想把ThirdParty.h
放在中央的include目錄中,因為它感覺很亂。 我想從項目的其余部分基本上隔離ThirdParty的內容。
所以現在它沒有建立。 有人能幫我一下嗎?
您可以使用顯示的結構來組織文件。 在編譯時,使用
-I<PROJECT_ROOT>/fooFolder/include
在命令行中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.