【问题标题】:Generate output files in separate directory in c using make file使用make文件在c中的单独目录中生成输出文件
【发布时间】:2014-10-22 04:11:26
【问题描述】:

如何使用 makefile 构建一个 c 项目,在源以外的单独目录中生成中间文件和输出文件?

我的 makefile 的当前形式是

CC = g++

LDLIBS = -lm

all: test_makefile

test_makefile: file1.o file2.o file3.o file4.o test_makefile.o
clean:
    rm test_makefile *.o

我想在 /build 目录中生成这些中间文件。 谁能帮我修改这个make文件?

【问题讨论】:

  • 您是否尝试过简单地更改相对路径? ./build/{name}
  • make: *** 没有规则来制作目标 'build/file1.o','test_makefile' 需要。停止。这是我将路径更改为 ./build/{name} 时的结果

标签: c build makefile


【解决方案1】:

对于具有独立源代码和构建目录的大型项目,您可能需要考虑使用 Automake (https://www.gnu.org/software/automake/)。

如果没有 automake,并且考虑到默认情况下编译器在 CWD 中生成输出文件,您可以简单地在构建目录中创建您的 makefile。这是一个使用 ../ 作为源目录的示例:

all: foo
foo: ../x.cc
    $(CXX) $< -o $@

【讨论】:

  • 感谢重播我是一个新手,你能帮我改变我的makefile吗?我真的无法理解 ../x.cc $(CXX) $
  • 我们需要 x.cc 还是 x.c ?
  • 我正在尝试为小型项目创建 makefile,除了在 CWD 中使用简单的 makefile 构建中间文件之外,还有其他选择吗?
  • 行: $(CXX) $gnu.org/software/make/manual/make.html
  • 当然Shihab,一一,"foo: ../x.cc"启动一个规则,从依赖列表".../x.cc"构建目标"foo",即x.cc在父目录中。正如我的回答中提到的,我在这里使用父目录作为源目录。第二行 "$(CXX) $
猜你喜欢
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 2010-12-16
  • 2021-12-26
  • 2021-08-18
  • 1970-01-01
相关资源
最近更新 更多