gpt4 book ai didi

compiler-errors - 修改makefile以编译.cc和.cpp文件

转载 作者:行者123 更新时间:2023-12-02 10:45:40 24 4
gpt4 key购买 nike

我正在尝试修改我的Makefile以支持.cpp和.cc,但是,我不断收到错误消息,例如

target `source/systemFuncs.cpp' doesn't match the target pattern

我正在修改一个支持.cc的现有makefile,但我想使其也可以编译.cpp,但是我不确定如何。这最初是一个用于nacl项目的make文件。

如何同时编译.cpp和.cc?

与makefile相关的内容:
x86_32_OBJS:=$(patsubst %.cc,%_32.o,$(CXX_SOURCES))
$(x86_32_OBJS) : %_32.o : %.cc $(THIS_MAKE)
$(CXX) ${INCDIRS} -o $@ -c $< -m32 -O0 -g $(CXXFLAGS)

$(PROJECT)_x86_32.nexe : $(x86_32_OBJS)
$(CXX) -o $@ $^ -m32 -O0 -g $(CXXFLAGS) $(LDFLAGS)

CXX_SOURCES中同时具有.cc文件和.cpp文件,因此它需要能够同时编译

最佳答案

您没有给我们太多帮助,但我会猜测。我认为您已将source/systemFuncs.cpp添加到CXX_SOURCES。然后,使这一行:

x86_32_OBJS:=$(patsubst %.cc,%_32.o,$(CXX_SOURCES))

将“.cc”替换为“_32.o”,并保持 source/systemFuncs.cpp不变。然后,make尝试将此名称输入到预期为“_32.o”的规则中,并崩溃了。

尝试这个:
CPP_SOURCES += source/systemFuncs.cpp

x86_32_CPP_OBJS:=$(patsubst %.cpp,%_32.o,$(CPP_SOURCES))

$(x86_32_CPP_OBJS) : %_32.o : %.cpp $(THIS_MAKE)
$(CXX) ${INCDIRS} -o $@ -c $< -m32 -O0 -g $(CXXFLAGS)

运气好的话,这将证明是粗糙但有效的。以后可能会有进一步的改进。

编辑:
如果两组文件名都必须在一个变量( CXX_SOURCES)中,则可以这样将它们分开:
CC_SOURCES :=  $(filter %.cc, $(CXX_SOURCES))
CPP_SOURCES := $(filter %.cpp, $(CXX_SOURCES))

这样就足够了吗?

关于compiler-errors - 修改makefile以编译.cc和.cpp文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9781417/

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