codeblock makefile问题解决(多文件怎么链接)

1.codeblock 怎么把多个文件连在一起

首先创建一个工程
然后导入你的文件(工程名上单击右键,add files)
写一个.h文件,把函数名和库放进去,比如下面:
在这里插入图片描述

2.codeblock 使用自己的makefile

还以上面为例,建一个makefile文件:

add: add.h main.cpp add.cpp
	g++ main.cpp add.cpp -o add

clean:
	rm -f add

然后项目上右键,properties

我这里创建时候默认了扩展名,没注意,后面去掉了,makefile文件应该没有扩展名

在这里插入图片描述
再项目右键,选build options
在这里插入图片描述
删成我图上这样
然后编译就是你的makefile了

3.编译错误

multiple definition of `addnum(int, int)’|
||error: ld returned 1 exit status|
Makefile|2|recipe for target ‘add’ failed|

这个其实不是代码有错,而是你有重复定义的东西,比如我这个multiple definition of `addnum(int, int)’|,就是这个函数重定义了,如图:
在这里插入图片描述删去一个就可以了

4.上面那个报错不显示哪里重复?

点开build log,非常清楚重复的文件和定义
在这里插入图片描述

5.全局变量不能删,加上重复怎么办?

这里以一个结构体为例在一个文件中我们可以这样写,但分文件不可以

在这里插入图片描述看下报错
在这里插入图片描述
因为我们都引入了add.h,所以相当于这个结构体多次定义,报错
那么要解决这个问题,需要在头文件用到extern,定义在主函数中(extern这里不做解释,请自行搜索),简单来说就是告诉别的程序有这样一个全局变量,你去主函数文件找它

然后将程序改为这个样子:
在这里插入图片描述可以看到编译成功,全局变量同理

自己摸索终于成功,如果你还有别的问题可以在评论区探讨(水平不行回答不出请谅解)

猜你喜欢

转载自blog.csdn.net/qq_44616044/article/details/110452502