我將詳細列出一個常見的假設問題。如何處理未提供庫的頭文件
問題:
我提供的靜態庫說libX.a
和頭文件a.h
和b.h
。頭文件a.h
和b.h
包含庫導出的API。 a.h
包括a1.h
和b.h
包括b1.h
。但a1.h
和b1.h
不由庫的所有者裝運,因爲a1.h
和b1.h
包含由庫私有使用的數據結構,並且所有者不想公開這些數據結構。
我必須編寫一個調用庫導出的API的應用程序。所以我必須包含a.h
和b.h
,其中包含API的聲明。
好的,很好。我寫我的應用程序,幷包括頭文件a.h
和b.h
並調用API。但是我會得到一個編譯器錯誤,因爲編譯器找不到內部包含a.h
和b.h
的a1.h
和b1.h
。
問題:
是否有一個解決這個問題?如果是的話,認真尋求解決方案:)
圖書館所有者是否有必要公開所有私人頭文件他內部使用在他的庫?
'nm'確實對靜態庫有效。 – unkulunkulu