C ++ Makefile;当外部模块之间存在依赖关系时该怎么做

时间:2015-10-20 09:29:22

标签: c++ makefile dependency-management

例如,我的程序使用2个外部模块,如下图所示。

dependencies between external modules

有模块A和模块B. 模块B使用并包含模块A; A的标题,库和数据(=模型)。

但他们的版本不同; B中的A版本是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中使用这些模块的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

使用不同的目录。一个用于代码' ll使用的模块A v3.8。模块B及其下的另一个目录具有模块A v3.6的子目录。您可以在每个目录中使用Makefile,也可以在源目录中使用一个Makefile(在单独的目录中)。