gpt4 book ai didi

c++ - 初学者 GNU Makefile 错误

转载 作者:行者123 更新时间:2023-11-28 03:52:49 25 4
gpt4 key购买 nike

这是我的第一次尝试,根据需要来自 previous post 的 Makefile .

无论如何这是代码

SortLab.exe : SelectionSort.o Main.o  
g++ -o $@ $^
SelectionSort.o : SelectionSort.cpp SelectionSort.h
Main.o : Main.cpp

#-------------------------------------------------------------

run: SortLab.exe
./SortLab.exe

clean:
rm -f *.o
rm -f *.exe

build: clean SortLab.exe

%.o: %.cpp
g++ -c $<

我打算让 SelectionSort.cpp & SelectionSort.h 形成一个目标文件,而 Main.cpp 形成它自己的目标文件.最后创建一个可执行文件。 Main.cpp 依赖于SelectionSort.cpp,哪里出错了?

另外,我在哪里可以找到不同的 GNU 命令的含义,-o -c 等等

最佳答案

  1. 您不需要自己定义 %.o: %.cpp 规则,Make 知道如何编译 C++。
  2. 缩进制表符,而不是空格; Make 对差异很敏感。
  3. 每个目标文件都应该依赖于它所依赖的源文件中包含的头文件。您可能需要 Main.o : Main.cpp SelectionSort.h
  4. build 不应依赖于 clean,它破坏了 Make 的主要功能之一(文件更改时有选择地重新编译)。
  5. 如果您将 build 作为第一个目标,您可以在没有目标的情况下运行 Make 以获得完整的编译。通常将主要目标称为 all

关于c++ - 初学者 GNU Makefile 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com