【发布时间】:2012-06-24 18:22:50
【问题描述】:
我有一个文件夹布局如下的项目:
/project_root
/common-code-sources
/common1
/common2
/...
/prog-A-sources
/prog-B-sources
/prog-C-sources
需要为程序 A、B 和 C 生成三个可执行文件。每个可执行文件都有少量唯一的源代码,但大多数都希望静态链接来自各种 libCommonCodeN.a 文件的功能。
但是,我需要构建 Program C 以及它所需的所有具有特定编译标志集的通用代码库。 (在这种情况下,是 32 位并且禁用了一些优化。)
这意味着程序 C 所需的common_sources 下的特定代码必须使用正确的标志再次编译。
我正在寻找有关如何最好地创建基于 Makefile 的构建系统来解决这种情况的想法。
我认为解决方案将涉及 lib 文件的并行输出文件夹和所谓的“目标特定”make 变量来指导该过程,但我不确定如何将它们组合在一起.
问题:当common-code 源之一发生更改时,如何确保在项目根目录运行make 执行正确的操作?
也就是说:我怎样才能重建有问题的特定 .a 的两种风格并重新链接 3 个可执行文件?
【问题讨论】:
标签: build build-automation static-libraries gnu-make