头歌实践教育平台——Linux之C编程入门
目录
第1关:第一个C程序
第2关:Linux编译C程序
第3关:Linux之静态库编写
第4关:Linux之动态库编写
第1关:第一个C程序
本关任务:在Linux系统上编写第一个C语言程序Hello world。
在当前目录下编写一个简单的C程序,输入“Hello world”字符串;
使用gcc编译生成a.out可执行文件;
使用vim编辑器编写一个“Hello world”C程序,并将源文件保存为test.c,然后编译运行test.c,可以使用如下命令:
代码:
touch test.c
vim test.c
记得回车键!!!
进入后,按 i 键即可编写代码
代码:
#include
int main()
{
printf("Hello world
");
return 0;
}
退出时,按“ESC”键 ,打入“ : wq” 保存,即可退出。
输入以下命令,
代码:
gcc test.c -o a.out
./a.out
第2关:Linux编译C程序
本关任务:学会gcc编译器的基本使用方法。
在当前目录下编写一个简单的C程序,输入“Hello GCC”字符串;
使用gcc编译生成名为firstExec的可执行文件;
步骤与前题相同
代码:
touch hello.c
vim hello.c
代码:
#include
int main()
{
printf("Hello GCC
");
return 0;
}
代码:
gcc hello.c -o firstExec
第3关:Linux之静态库编写
本关任务:学会在Linux系统上生成C语言的静态库。
在当前目录下编写一个简单的函数int Add(int a, int b),其功能为计算输入参数a+b的结果;
将Add函数编译生成一个静态库libAdd.a,并存放在当前目录下;
按顺序编写
在Add.h中加入以下代码后保存
代码:
#include
int Add(int a,int b);
在Add.c中加入以下代码后保存
代码:
#include
int Add(int a,int b){
return a+b;
}
编写main.c
在main.c中加入以下代码后保存
代码:
#include "Add.h"
int main(){
int c=Add(2,6);
return c;
}
第4关:Linux之动态库编写
本关任务:学会在Linux系统上生成C语言的动态库。
在当前目录下编写一个简单的函数int Sub(int a, int b),其功能为计算输入参数a-b的结果;
将Sub函数编译生成一个动态库libSub.so,并存放在当前目录下;
修改/etc/ld.so.conf,添加当前目录,并更新/etc/ld.so.cache;
在目录下编写一个简单的函数,命令如下:
代码:
gcc -fPIC -c Sub.c -o Sub.o
gcc -shared Sub.o -o libSub.so
在Sub.h中加入以下代码后保存
代码:
#include
int Sub(int a,int b);
在Sub.c中加入以下代码后保存
代码:
#include "stdio.h"
int Sub(int a,int b){
return a-b;
}
在main.c中加入以下代码后保存
代码:
#include
#include "Sub.h"
int main(){
int c=Sub(10,2);
return c;
}
调用以上案例生成的Sub函数
代码:
gcc main.c -o exe -L ./ -lSub
./exe
此时编译正常,当运行的时候会报**"No such file or directory"**错误。
更新/etc/ld.so.cache来运行动态库,编辑/etc/ld.so.conf配置文件,然后加入需要加载的动态库目录。
代码:
vim /etc/ld.so.conf
加入 /root 保存