以前也遇到过这样的问题,现在又遇到了于是决定记录一下,以便后面查阅,参考
引言:
Linux下很多时候需要自己写一写函数来实现一些功能,当在多个文件下要用到同一函数总是重写该函数显然这是不现实的,
这时大多数人会选择写头文件,而Linux下的GCC编译器不会自动给你链接形成可执行文件,这时需要我们自己用命令来实现链接(这里适用文件个数不多的情况,文件多的可以写MakeFile)
可以看到直接gcc 目标文件会显示未定义
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5MDO5MDOyITMyITOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
解决:
要将一个个的文件单独编译成.o的目标文件再来链接生成可执行文件
gcc -c test.c
gcc -c add.c
gcc -o ok test.o add.o