【发布时间】:2017-06-25 06:09:46
【问题描述】:
如何在makefile的依赖中写“或”,我需要同时检查.c和.cpp:
SOURCES=$(wildcard $(SRC)/*.cpp) $(wildcard $(SRC)/*.c)
myTarget: $(SOURCES:.cpp||.c=.o)
g++ ...
它不起作用,你能在这种情况下使用“或”吗?
【问题讨论】:
-
不要认为他是个好主意。使用相同的编译器和选项编译 C 和 C++ 并不总是很好。我会用两条单独的规则来处理这个问题。
-
你不能用 C++ 编译器编译 C 代码。
-
电源可以,但我不会,我只是好奇使用“或”的问题,至于c代码,也不编译为.o文件,当我需要它时,我编译为更容易的库。
-
@PerduGames “Power can”是什么意思?在一般情况下,C 代码不能用 C++ 编译器编译。一些 C 代码恰好也是有效的 C++,但依赖它确实不是一个好主意,并且很容易编写完全有效的 C 而 不是 有效的 C++(例如,使用标识符这是 C++ 中的 保留关键字 或使用指定的结构初始化器等)
-
是正确的,我的意思是取决于代码会编译是的,但是是的,如果它是一个不太通用的代码会指责错误。不,我不会用 c++ 编译器编译 c,这只是一个“或”的问题。