Linux 编程中的多目录"make"
multi-directory "make" in linux programming
假设我们有一个文件列表:
- 来源
- 一个
- 乙
- C
- 生成文件
每个文件夹中都有许多.cc和.h文件。如何编写生成文件?
当我写这样的路径时./a/a.cc 或 ../a/a.cc
将发生错误。
但是当我把文件放在同一个目录上时并写成 a.cc。一切都很好。
我在cygwin上运行它。谁能帮我?
wildcard
函数就是你要找的:http://www.gnu.org/software/make/manual/html_node/Wildcards.html
在Linux上,我更喜欢Automake/Autoconf构建系统:http://de.wikipedia.org/wiki/GNU_Build_System
另一种选择可能是CMake:http://www.cmake.org/
从不太清楚的目录图中,您似乎缺少Makefile
中的src/
目录前缀。 例如,要编译src/a/a.cc
,请使用:
src/a/a.o: src/a/a.cc
$(CXX) $(CXXFLAGS) -c -o $@ $<
但是:帮自己一个忙,并使用真正的构建系统,例如CMake。它是跨平台的,可以生成IDE项目文件(例如Visual Studio,Xcode,Eclipse,CodeBlocks等),是更高级别的,并为您进行自动依赖关系跟踪。
您遗漏了很多细节(例如,要放置目标文件的位置),但VPATH
可能是您正在寻找的。
VPATH = src/a src/b src/c
# Now you can write rules as if the .cc & .h files were in the current directory.
%.o: %.cc
do something with $<
foo.o: foo.cc bar.h
do something special with $<
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 模板元编程:如何将参数包组合成新的参数包
- Qt Q串行端口未编程设备未关闭
- 模板元编程 - 尝试实现维度分析
- 我是编程新手
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- make 命令如何避免重新编译未更改的源文件?
- C++编程从外部文本文件定义数组大小
- 了解算法的性能差异(如果以不同的编程语言实现)
- MAKE:找不到包含的用户定义的头文件?
- 使用 Gtkmm 以编程方式选择 Gtk::TextView 中的文本
- 如何将可变参数模板转换为多个单个模板?(C++竞争编程调试模板)
- 'make check' GLIBC 运行时的链接问题
- 使用命名空间正确编程
- C++编程:运算符重载中的引用如何工作?
- Arduino 模块化编程与全局和设置
- 如何以编程方式运行make&CMake
- Linux 编程中的多目录"make"