gpt4 book ai didi

c++ - Makefile 中无法识别 CFLAGS

转载 作者:行者123 更新时间:2023-11-30 01:09:49 26 4
gpt4 key购买 nike

我正在将一个使用 lambda 函数的小型学校作业复杂化,因此它需要在 gcc 调用中使用“-std=c++11”。但是 make 文件的输出似乎表明它没有被添加。我没有链接问题,因此无需在此处复制所有源代码。

这是我的生成文件:

CC=g++
CFLAGS= -std=c++11 -I. -Wall
DEPS = wordarray.h
OBJ = ayalajL03b.o wordarray.o

%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)

L03b.out: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS)

.PHONY: clean

clean:
rm -f -v *.o
rm -f -v *.out

这是输出:

[user@server Lab03]$ make
g++ -c -o wordarray.o wordarray.cpp
wordarray.cpp:28:77: warning: lambda expressions only available with -std=c++11 or =gnu++11
counter([](char a)->bool{return !isvowel(a) && !isdigit(a) && isalpha(a);}, Worount].word);

请帮助我理解我做错了什么。

最佳答案

你的规则是

%.o: %.c $(DEPS)

但是你正在编译一个.cpp文件。

将使用 .cpp 源文件的隐式 make 规则。

要么将您的规则更改为

%.o: %.cpp $(DEPS)

或者设置隐式规则中使用的CXXFLAGS变量。

关于c++ - Makefile 中无法识别 CFLAGS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373916/

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