例如,我的程序使用2個外部模塊,如下圖。C++ Makefile;當外部模塊之間存在依賴關係時該怎麼辦
有模塊A和模塊B 模塊B使用,並且包括在其內部模塊A; A的頭文件,庫和數據(=模型)。
但是他們的版本不同; A中B的版本是3.6,但A的最新版本是3.8
我的程序包含兩個模塊,使用我的Makefile如下所示。 但是,我得到了編譯錯誤,或者,我的程序在運行時得到段錯誤。
g++ -I$(A_PATH)/include -I$(B_PATH)/include \
-L$(A_PATH)/lib -L$(B_PATH)/lib \
-Wl,-rpath,$(A_PATH)/lib -Wl,-rpath,$(B_PATH)/lib \
…
我想使用最新的模塊A在我的計劃,那麼, 什麼是用在我的Makefile這些模塊的最好方式?
「試圖編譯未公開的代碼時出現未指定的編譯器錯誤」。這裏並沒有太多有用的信息。 –
如果您正在構建模塊A和/或模塊B,則它們不是真正的外部模塊。如果你不這樣做,makefile不能確保你使用的是兼容版本。 Make不是配置管理員。如果您有針對A v3.6構建的A v3.8和B,則您的配置不可用。無論是切換到A v3.6,還是自己建立一個針對A v3.8的B版本。 –
模塊A和B不是開源項目。我無法親自建造圖書館;我可以使用編譯的庫。其實,我想檢查是否有一些衆所周知的技術來解決這個問題。你的評論對我很有幫助。謝謝! –