簡體   English   中英

在靜態庫中包含靜態庫依賴項的include語句

[英]Include statement for static library dependency in a static library

在我的應用程序中,我使用帶有頭文件foo.h的靜態庫

在我的構建腳本中,我使用gcc -I標志-I./lib

foo庫位於目錄./lib/foo 在我的主應用程序中,我將foo.h包含為

#include "foo/foo.h"

現在,我將應用程序的一部分重構為庫bar ,我希望它可以靜態鏈接到另一個應用程序。 該庫bar取決於foo 以我目前的項目布局,我可以包括foobar

#include "foo/foo.h"

但是,這將迫使bar用戶將foo放置在名為foo的目錄中。

在這種情況下,標准的操作如下嗎?

在構建腳本中添加-I標志,該腳本允許僅在bar包含foo

#include "foo.h"

將文件夾結構與包含文件一起使用的原因是為了防止與同名的頭文件發生沖突。 例如,假設我正在使用一個庫進行加密,並且它們有一個名為“ status.h”的頭文件。 同時,我想使用消息傳遞庫,並且它們還有一個名為“ status.h”的頭文件。 它們不能共存於同一目錄中,並且如果將目錄設置為包含路徑,則可能不知道要包含哪個目錄。 如果您將它們分開放置,則可以同時包括以下兩者:

#include "encryption/status.h"
#include "messaging/status.h"

因此,問題的答案取決於您認為包含文件的名稱與其他庫的其他包含文件沖突的可能性。 如果它永遠不會沖突,那么您的建議就可以了。 如果會沖突,請讓他們使用目錄。

編碼愉快!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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