自动检测源以进行自动制作
Autodetect source for automake
本文关键字:自动检测 更新时间:2023-10-16
我正在尝试做一个在运行时(make)找到所有依赖项(c和cpp文件)的 Makefile.am。
我测试这个命令:
example_SOURCES=$(shell find . -type f | grep -E '.c|.cpp' | awk '{L[NR]=$$0} END {{for (i = 1; i <=NR-1;i++) print L[i]"\"}; {print L[NR]}}')
该命令工作正常(我已经通过在文件中添加重定向来控制,并且源很好)。
但是制作文件不使用任何来源:
gcc -g -O2 -o example
如何归档自动创建所有来源的目标?
p.s 我已经读过自动制作必须知道所有来源,这是正确的吗?这可以解释为什么我的脚本不起作用。
更多详情 :我已经修改了 Makefile 生成并在example_sources上放置了回显,他包含我的所有文件。
我已经检查了带有我的脚本和没有脚本的 Makefile 之间的差异,重点是这部分:
使用脚本:
am_example_OBJECTS =
使用手动依赖:
am_example_OBJECTS = ./main.$(OBJEXT)
他似乎自动制作需要自己知道源文件才能生成生成文件。
所以我找到了一个解决方法,
我在配置过程中使用 sed 更改 Makefile.am。
# Source + dependency.
files=`find ./src/ -type f | grep -E '.h$$|.hpp$$|.c$$|.cpp$$' | sed 's//src//g'`
sed -i '/.*_SOURCES.*/c'"$soft"'_SOURCES = '"$files"'' src/Makefile.am
它工作正常,当我们添加源时,我们只需要做 ./configure 来更新依赖项列表。
相关文章:
- 无法获得 std::from_chars 自动检测基础
- QImage:加载图像时自动检测格式
- 如何让Visual Studio自动检测子文件夹中的.cpp文件?
- GCC - 如何自动检测每个基本模块
- 自动检测C++14 "return should use std::move"情况
- c++Windows自动检测代理设置
- 函数有没有办法自动检测其参数的数据类型?(请不要建议函数重载)
- 自动检测源以进行自动制作
- 使C++初始值设定项自动检测工会成员
- 如何使用 C/C++自动检测 snmp 设备
- 用c++实现函数对象的自动检测类型
- C/C++中操作系统的自动检测
- 使用ESP8266自动检测本地服务器
- 如何以可移植的方式在C++中自动检测内存泄漏
- 一种自动检测对象的方法,该方法通过值传递给c++中的函数
- 同时自动检测COM-Port和WriteLine
- 在c++ (Windows)中自动检测Arduino
- 自动检测不带参数的模板参数
- 使用gammu时自动检测调制解调器端口
- 方法自动检测find_first_of()和族不正确的情况