Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Makefile change可在不同格式的文件之间进行选择_C++_C_Makefile - Fatal编程技术网

C++ Makefile change可在不同格式的文件之间进行选择

C++ Makefile change可在不同格式的文件之间进行选择,c++,c,makefile,C++,C,Makefile,目前,我的项目中有.c和.cpp文件格式的文件。我想在Makefile中自动生成对象文件,以便根据文件的可用性动态选择.c或.cpp文件 目前, obj/%.o : %.cpp $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $< obj/%.o:%.cpp $(CXX)$(MKDEPEND)-c-o$@$(CFLAGS)$(INCDIRS)$< 样品溶液 obj/%.o : %.cpp (OR) %.c $(CXX)

目前,我的项目中有.c和.cpp文件格式的文件。我想在Makefile中自动生成对象文件,以便根据文件的可用性动态选择.c或.cpp文件

目前,

obj/%.o : %.cpp
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<
obj/%.o:%.cpp
$(CXX)$(MKDEPEND)-c-o$@$(CFLAGS)$(INCDIRS)$<
样品溶液

obj/%.o : %.cpp (OR) %.c
    $(CXX) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<
obj/%.o:%.cpp(或)%.c
$(CXX)$(MKDEPEND)-c-o$@$(CFLAGS)$(INCDIRS)$<

有什么解决办法吗?谢谢。

只要制定两条不同的规则就行了。无论如何,你不想对两个方法使用相同的配方(你不想使用C++编译器编译C代码)。
obj/%.o:%.cpp
$(CXX)$(MKDEPEND)-c-o$@$(CXXFLAGS)$(INCDIRS)$<
obj/%.o:%.c
$(CC)$(MKDEPEND)-c-o$@$(CFLAGS)$(INCDIRS)$<

Make将尝试匹配这两个规则,并使用任何一个匹配的规则,而忽略其他规则。

只需创建两个不同的规则即可。无论如何,你不想对两个方法使用相同的配方(你不想使用C++编译器编译C代码)。
obj/%.o:%.cpp
$(CXX)$(MKDEPEND)-c-o$@$(CXXFLAGS)$(INCDIRS)$<
obj/%.o:%.c
$(CC)$(MKDEPEND)-c-o$@$(CFLAGS)$(INCDIRS)$<
Make将尝试匹配这两个规则,并使用任何一个匹配的规则,而忽略其他规则

obj/%.o : %.cpp
        $(CXX) $(MKDEPEND) -c -o $@ $(CXXFLAGS) $(INCDIRS) $<

obj/%.o : %.c
        $(CC) $(MKDEPEND) -c -o $@ $(CFLAGS) $(INCDIRS) $<