我正在使用一個封閉的源庫(由Activ財務),其中包括與他們的API提升分佈,一些升壓頭文件和boost庫文件。封閉的源庫包括助推分佈
我也在我現有的代碼庫中使用Boost,並且我需要使用現有代碼中的Activ。
幾點
- 我可以封裝我使用ACTIV,使整個ACTIV部分達一個類我寫的不公開任何ACTIV的頭
- 這種單一的頭文件不使用的任何提振任何
- 這樣,我可以保證我的代碼使用ACTIV的升壓HPP文件,我的代碼的ACTIV部分使用我Boost的HPP文件
我擔心來在鏈接。我如何確保我的Activ依賴代碼鏈接到Activ的Boost,並且我的其他代碼鏈接到了我的Boost?
我現在使用g ++,在VS2008中也會這樣做。我之前在VS2008中工作過,但我不知道每件事情如何鏈接。我想嘗試確保它正確完成。
有沒有辦法做到這一點,而無需進一步封裝動態庫中的Activ部分?
編輯:
首先,我的最終產品始終是一個可執行文件。對於兩個人,我靜靜地聯繫起來提振自己。 Activ庫包括Boost對象庫的靜態和動態版本,並且我計劃靜態鏈接它。
我從來不會在使用不同boost版本的代碼之間傳遞Boost對象。
的問題是,如何鏈接一個CPP或.o
文件對象一個庫文件,並確保其他.o
文件鏈接到另一個庫文件中相同的對象?這可能嗎?
看我的編輯。基本上,這似乎我需要在連接時進行破解。我有兩個對象庫(每個版本的Boost)具有相同的符號,但這些符號的代碼不相同,我需要確保每個.o文件鏈接到正確的Boost .a文件。據我所知,鏈接只能在最後一次完成,所以我不知道該怎麼做。 (對於包含文件,問題更容易,因爲我可以在gcc中用不同的`-I`指令編譯每個cpp文件。)我是否正確地考慮這個問題? – Scott 2010-12-01 16:16:53