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

标签 compiler-errors makefile google-nativeclient cc

我正在尝试修改我的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/

相关文章:

PHP-5.6 编译 tokenizer 错误 Ubuntu 14.04

C 编程 [错误] 输入末尾的预期声明或语句

C++没有匹配函数调用 `LogBlock<CrazyflieROS::logMotor>`

c++ - UVM-SystemC库 'make check'错误

makefile - 当 PHONY 依赖项更新时,为什么 make 不考虑没有配方过时的目标?

javascript - 理论上是否可以使用 chromium 的 installable-webapp API 构建纯 JS bittorrent?

java - 将中缀字符串转换为二叉树的代码,我收到了: Uncompilable source code - Erroneous sym type

c++ - 构建可执行文件时找不到 pthread 库?

将 chrome 原生客户端中的 pp::Var 数组转换为 C 整数数组

google-nativeclient - CEF3 是否支持 NaCl?