我最近开始使用MinGW,但我无法让make
在Windows上工作。我的目录结构如下:
Makefile
p001.cpp
p002.cpp
p003.cpp
bin\
我的Makefile
看起来像这样:
CC=g++
BIN=bin
%: p%.cpp
$(CC) p$*.cpp -o $(BIN)/p$*
但是,当我使用make
时,我收到错误:
> make 001
cc p001.cpp -o bin/p001
make: cc: Command not found
make: *** [001] Error 127
我不确定这里有什么问题。根据我的阅读,当找不到指定的编译器时,变量CC
默认为cc
。我不明白为什么会这样。 g++
位于我的系统路径变量中,只需使用g++ p001.cpp -o bin/p001
即可。
答案 0 :(得分:1)
OP在这里。我只需在makefile的开头放一条注释行/空行即可解决问题。之后它运作良好。我还不知道为什么会这样。我修改过的makefile看起来像:
# this is a comment
CC=g++
BIN=bin
%: p%.cpp
$(CC) p$*.cpp -o $(BIN)/p$*
答案 1 :(得分:0)
我不确定你究竟在尝试做什么,但我认为你正在尝试这样做:
CC=g++
BIN=bin
all: p
p: p001.o p002.o p003.o
$(CC) -o $(BIN)/program.exe p001.o p002.o p003.o
p001.o: p001.cpp
$(CC) -c p001.cpp
p002.o: p002.cpp
$(CC) -c p002.cpp
p003.o: p003.cpp
$(CC) -c p003.cpp
答案 2 :(得分:0)
调用C ++编译器时,应使用$(CXX)
。 $(CC)
用于编译C代码。
MinGW不附带cc
,因此$(CC)
不起作用。您应该将其定义为gcc
作为环境变量以使其起作用。另一种选择是将gcc.exe复制到cc.exe