c++ - 有没有办法减少 GNU make 中重复的先决条件模式?

标签 c++ c makefile gnu-make

现在的方式是这样的,看起来很笨拙..

ex1_test : ex1.o ex1_test.o
    cc -o ex1_test ex1.o ex1_test.o
ex2_test : ex2.o ex2_test.o
    cc -o ex2_test ex2.o ex2_test.o
ex3_test : ex3.o ex3_test.o
    cc -o ex3_test ex3.o ex3_test.o

是否有可用于表示当前目标并减少重复的变量?

谢谢!

最佳答案

第一步,引入自动变量:

ex1_test : ex1.o ex1_test.o
    cc -o $@ $^
ex2_test : ex2.o ex2_test.o
    cc -o $@ $^
ex3_test : ex3.o ex3_test.o
    cc -o $@ $^

第 2 步,意识到这些规则看起来都一样,并用模式规则替换它们:

ex%_test: ex%.o ex%_test.o
    cc -o $@ $^

关于c++ - 有没有办法减少 GNU make 中重复的先决条件模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12756746/

相关文章:

c++ - 为什么 GoogleMock 会泄露我的 shared_ptr?

C++:修改函数,尝试重新编译,得到对该函数的 undefined reference

c++ - 使用C++创建一个sqlite3表

c++ - 正确的 set_socket_init_handler 语法或修改源代码以使用 websocket++ 打开 TCP_NODELAY

c++ - 编译一个使用 sfml 和 mingw 从 linux 移植到 windows 的 C++ 程序

检查结构数组是否已满

c - 帮助进行简单的 C 编程练习

c++ - 如何使用 ODBC 批量获取或插入行? (在 C 或 C++ 中)

c - 错误 : 'strdup' was not declared in this scope

sed - 使用 sed 改变 Makefile 变量