我要做的是从目标文件创建一个c ++文件,但我无法找到一种方法。
INCLUDEDIR = ../headers
CXXFLAGS = -std=c++11 -I $(INCLUDEDIR) -Wall -Wfatal-errors -O2
all:primeFactors.o
primeFactors.o: primeFactors.cpp $(INCLUDEDIR)/primeFactors.h
g++ $(CXXFLAGS) -c $< -o $@
当我尝试构建这个时,我得到了
make: *** No rule to make target 'primeFactors.cpp', needed by 'primeFactors.o'. Stop.
我理解但是当我拿出primeFactor.cpp参数时,我会被告知make文件没什么可做的。有没有办法做到这一点?
答案 0 :(得分:0)
总的来说;不,你做不到。目标文件(.o文件)是代码通过编译器前端(解析语言)优化器(使其快速运行)和编译器后端(生成将在其上运行的代码)的结果你的CPU)。 此过程不可逆。你不能从编译代码回到源代码。
答案 1 :(得分:0)
可以使用makefile从.o对象文件创建c ++文件吗?
makefile
只有在您有基础工具的情况下才能执行此操作。使用makefile完成其工作的make
没有任何内置机制来解决这个问题。
您的makefile
有制定primeFactors.o
的规则。
primeFactors.o: primeFactors.cpp $(INCLUDEDIR)/primeFactors.h
它表示构建primeFactors.cpp
需要$(INCLUDEDIR)/primeFactors.h
和primeFactors.o
。如果您没有这些文件,或者没有规则来构建这些文件,则make
无法构建primeFactors.o
。