簡體   English   中英

第三方頭文件放在源代碼樹中的哪里?

[英]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.cppbarFolder ,它需要創建一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM