请问一个Makefile实现类似 -= 的问题
比如我在 config.mk(一个公用的配置文件)定义了 CXXFLAGS = -Wall -fpermissive -D_REENTRANT -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
每个.so库的Makefile文件都有 include config.mk
但是在某一个库的Makefile中,我又想去掉 CXXFLAGS 中的 -fvisibility=hidden -fvisibility-inlines-hidden 这两个编译选项, 请问有没有办法实现类似
CXXFLAGS -= -fvisibility=hidden -fvisibility-inlines-hidden
这样的功能呢?
如果变通一下,定义 CXXFLAGS_REMOVE = -fvisibility=hidden -fvisibility-inlines-hidden
然后 foreach CXXFLAGS_REMOVE的设置,在 CXXFLAGS 中去掉相应的项,然后得到一个新的 CXXFLAGS 。
CXXFLAGS := $(foreach flag, $(CXXFLAGS_REMOVE), <...>)
请问这里应该怎么做呢?谢谢!
每个.so库的Makefile文件都有 include config.mk
但是在某一个库的Makefile中,我又想去掉 CXXFLAGS 中的 -fvisibility=hidden -fvisibility-inlines-hidden 这两个编译选项, 请问有没有办法实现类似
CXXFLAGS -= -fvisibility=hidden -fvisibility-inlines-hidden
这样的功能呢?
如果变通一下,定义 CXXFLAGS_REMOVE = -fvisibility=hidden -fvisibility-inlines-hidden
然后 foreach CXXFLAGS_REMOVE的设置,在 CXXFLAGS 中去掉相应的项,然后得到一个新的 CXXFLAGS 。
CXXFLAGS := $(foreach flag, $(CXXFLAGS_REMOVE), <...>)
请问这里应该怎么做呢?谢谢!
...全文
相关推荐
makefile中文手册
**高级应用**:Makefile还可以实现并行构建,利用`-j`选项指定同时运行的任务数量。
跟我一起写makefile
每个源文件通常对应一个中间目标文件。链接阶段,链接器将多个目标文件合并为可执行文件,查找并连接函数和全局变量的实现。如果链接器找不到函数的实现,就会报链接错误。
Makefile 的编写指导
Makefile 通常用于 Unix/Linux 环境下的软件构建过程中,但它同样可以在 Windows 等其他操作系统中使用相应的工具来实现类似的功能。
makefile编写
#### 六、最佳实践- **保持简单:** 尽量避免过于复杂的 Makefile,使其易于理解和维护。- **复用规则:** 对于类似的文件或操作,尽可能使用相同的规则。
GNU_makefile中文手册
它通过读取一个名为Makefile(或类似名称的文件)来确定如何构建最终的可执行文件或其他目标文件。


