首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在makefile中无法识别CFLAGS

在makefile中无法识别CFLAGS
EN

Stack Overflow用户
提问于 2016-09-07 23:26:43
回答 1查看 369关注 0票数 1

我正在使一个使用lambda函数的小型学校作业复杂化,因此它需要在gcc调用中使用'-std=c++11‘。但是,make文件的输出似乎显示未添加该文件。我没有链接问题,所以没有必要在这里复制所有的源代码。

这是我的makefile:

代码语言:javascript
复制
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

下面是输出:

代码语言:javascript
复制
[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);

请帮我弄明白我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-07 23:45:53

你的规则是

代码语言:javascript
复制
%.o: %.c $(DEPS)

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

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

将您的规则更改为

代码语言:javascript
复制
%.o: %.cpp $(DEPS)

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39373916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档