如何解决使用C ++中的MinGW Tool包含多个类/.o文件
我想将2个类编译为.o文件,并将它们包含在从avl.cpp主文件创建的Test.exe文件中。
在执行此操作时,我使用了MinGW工具,但是当我在CMD中键入命令mingw32-make
时什么也没发生。当我仅上一堂课时,就没有问题。
Makefile文件的内容如下:
all: compile execute
compile:
g++ -I ./include/ -o ./lib/AVLClass.o -c ./src/AVLClass.cpp
g++ -I ./include/ -o ./lib/PersonsClass.o -c ./src/PersonsClass.cpp
g++ -I ./include/ -o ./bin/Test ./lib/PersonsClass.o ./lib/AVLClass.o ./src/avl.cpp
execute:
./bin/Test
解决方法
Makefile使用依赖关系来确定以什么顺序构建的内容。
因此,find /cygdrive/d/Jenkins/workspace/sam-org/testing/app_name/src/abc -name "*.dsx" -exec cp "{}" /home/kumar/ITEST_FILES \
行实际上应该是execute:
,以告诉make在完成execute: compile
步骤之后执行execute
步骤。
但是您应该真正将编译链接分为几个步骤,以使用make的依赖项解析质量。
这是我要怎么做:
compile
请注意,缩进必须是制表符,而不是空格。
实际上,我不会将BINEXT=.exe
CXX=g++
MKDIR=mkdir -p
RM=rm -f
all: bin/Test$(BINEXT) test
lib/%.o: src/%.cpp
$(MKDIR) lib
$(CXX) -c -o $@ $^
bin/Test$(BINEXT): lib/AVLClass.o lib/PersonsClass.o lib/avl.o
$(MKDIR) bin
$(CXX) -o $@ $^
test: bin/Test$(BINEXT)
bin/Test$(BINEXT)
clean:
$(RM) lib/*.o bin/Test$(BINEXT)
添加到test
目标中。最好让用户自己运行all
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。