-2

假设我们有一个文件列表:

  • 源代码
    • 一个
    • b
    • C
  • 生成文件

每个文件夹中有许多 .cc 和 .h 文件。Makefile怎么写??

当我写这样的路径时 ./a/a.cc 或 ../a/a.cc

会发生错误。

但是当我将文件放在同一目录并写为 a.cc 时。一切都好。

我在cygwin上运行它。谁能帮助我?

4

3 回答 3

1

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/

于 2012-04-25T07:31:13.137 回答
1

您遗漏了很多细节(例如,您想要放置目标文件的位置),但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 $<
于 2012-04-25T12:44:02.797 回答
1

src/从不太清晰的目录图中,您似乎缺少Makefile. 例如编译src/a/a.cc,使用:

src/a/a.o: src/a/a.cc
    $(CXX) $(CXXFLAGS) -c -o $@ $<

但是:帮自己一个忙,并使用真正的构建系统,例如CMake。它是跨平台的,可以生成 IDE 项目文件(例如 Visual Studio、Xcode、Eclipse、CodeBlocks 等),级别更高,并为您进行自动依赖跟踪。

于 2012-04-25T07:34:13.137 回答