我已经为包含语句的简单 cpp 程序编写了一个 make 文件cout
。
#This a makefile for compiling the hello world cpp program.
CC=clang++
all: run test.o
run: .cpp=.o
.PHONY: clean
clean:
rm -rf *.o run
但这并没有编译我的 test.cpp。我从教程中学到这个想法,make
如果未指定任何内容,它将足够智能地编译依赖项和目标。
出了什么问题?
谢谢。
答案1
在您的情况下不需要 makefile,因为它make
具有知道如何编译简单程序的内置规则。
简单的方法
创建一个名为test.cpp的hello world测试程序。
#include <iostream> using namespace std; int main() { cout << "Hello, World! << endl; return 0; }
将目录更改为
cd
包含 test.cpp 的目录并运行make
。make CC=g++ test
为了运行上述命令
make
,g++
必须安装。运行测试可执行文件。
./test
结果
./test
:Hello, World!
艰辛的道路
创建一个名为test.cpp的hello world测试程序,与简单的方法相同。
将目录更改为
cd
包含 test.cpp 的目录并创建一个名为 makefile1 的 makefile。CC = clang++ CFLAGS = -g RM = rm -f default: all all: Hello Hello: test.cpp $(CC) $(CFLAGS) -o Hello test.cpp clean veryclean: $(RM) Hello
clang++
缩进的两行必须以制表符开头,而不是 4 个空格。如果用替换 ,上述 makefile 也将正确运行g++
。跑步
make
。make -f makefile1
为了运行上述命令
make
clang
,g++
必须安装。运行 Hello 可执行文件。
./Hello
结果
./Hello
:Hello, World!