从一到多
环境:ubuntu 18.04
背景知识
vim编辑器是vi的加强版,如果你的系统没有安装它的话,不妨在终端键入sudo apt-get install vim
来安装它。在基本功能上二者没啥大差别,不过,看在vim更友好的高亮上,多用用它吧?
上一篇文章里提到调用gcc时,-o
可用于指定生成目标文件的名称,这里再补充一个——-c
用于指示“编译但不链接”。
步骤
首先当然建议打开终端并自己建个文件夹,不然练习完删起来麻烦
首先,我们来准备一个总文件数大于1的程序,嗯,就写hello world吧!代码如下:
//我是hello.c #include "hello.h" void sayhello() { printf("Hello World!\n"); }
//我是hello.h
#include <stdio.h>
void sayhello();
//我是test.c
#include "hello.h"
int main()
{
sayhello();
return 0;
}
- 我们可以试试直接
gcc test.c -o test
,会发现没有文件生成,而且编译器提示“undefined reference to 'sayhello' ”。看来直接编译、链接行不通,这个编译器看起来不太聪明的亚子。 那么,我们试试单独编译每个文件后再链接吧。
gcc -c hello.c gcc -c test.c gcc hello.o test.o -o test
- 最后,
./test
,我们用多文件程序的方式成功输出Hello World!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。