gpt4 book ai didi

c++ - 如何更改在 Makefile 中自动生成的命令的默认参数

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:57 25 4
gpt4 key购买 nike

假设工程中只有3个文件:a.h a.cpp main.cpp。我使用的是 ubuntu 14.04

生成文件:

CFLAG=-Wall
CC=clang

m:main.o a.o
${CC} ${CFLAG} -o $@ $^

a.o:a.h
main.o:a.h

问题是在编译a.o的时候,会生成这样的命令:

g++ -c -o a.o a.cpp

但我期望的是:

clang -Wall -c -o a.o a.cpp

除了像这样重写Makefile还有没有别的想法:

a.o:a.cpp a.h
${CC} ${CFLAG} -o $@ a.cpp
main.o:a.h main.cpp
${CC} ${CFLAG} -o $@ main.cpp

最佳答案

GNU Make manual 中所述,按照惯例,C++ 编译器保存的变量是 CXX 而不是 CCCC 适用于 C 编译器。

所以添加一行:

CXX=clang

应该可以解决您的问题。

然后我会将您对 CC 的使用重构为 CXX 以保持一致和常规。

使用 Makefile:

CXXFLAGS=-Wall
CXX=clang

m:main.o a.o
${CXX} ${CXXSFLAGS} -o $@ $^

a.o:a.h
main.o:a.h

调用 make 给我:

$ make
clang -Wall -c -o main.o main.cpp
clang -Wall -c -o a.o a.cpp
clang -o m main.o a.o

关于c++ - 如何更改在 Makefile 中自动生成的命令的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924052/

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