题目要求在此省略,直接看最终答案:
第1关:第一个C程序
第一步:
第二步:vi进入之后,按 i 键即可写入代码
#include <stdio.h>
int main()
{
printf("Hello world\n");
return 0;
}
第三步:
退出时,ESC ——> SHIFT+ : ——> wq! 即可退出
第四步:
gcc test.c -o a.out
./a.out
第2关:Linux编译C程序
第一步:
- touch hello.c
- vim hello.c
第二步
其余操作看上图与第一关一致,下面将不再赘述类似操作。
#include <stdio.h>
int main()
{
printf("Hello GCC\n");
return 0;
}
第3关:Linux之静态库编写
本关任务是学会生成和使用静态库。
具体编程要求如下:
- 在当前目录下编写一个简单的函数
int Add(int a, int b)
,其功能为计算输入参数a+b
的结果; - 将Add函数编译生成一个静态库
libAdd.a
,并存放在当前目录下
相对应的代码:
1.创建一个C源文件,比如add.c
,包含Add
函数的定义。
// add.c | |
#include "add.h" | |
int Add(int a, int b) { | |
return a + b; | |
} |
2.创建一个头文件add.h
,用于声明Add
函数。
// add.h | |
#ifndef ADD_H | |
#define ADD_H | |
int Add(int a, int b); | |
#endif // ADD_H |
3.使用gcc
命令编译add.c
为一个目标文件(.o
文件)。
gcc -c add.c -o add.o |
4.使用ar
命令将目标文件打包为一个静态库libAdd.a
。
ar rcs libAdd.a add.o |
现在你应该有一个名为libAdd.a
的静态库文件在当前目录下。
如果你想要在其他程序中使用这个静态库,你可以这样做:
1.编写一个包含main
函数的C源文件,比如main.c
。
// main.c | |
#include <stdio.h> | |
#include "add.h" | |
int main() { | |
int sum = Add(2, 3); | |
printf("The sum is: %d\n", sum); | |
return 0; | |
} |
2.使用gcc
命令编译main.c
,并链接libAdd.a
静态库。
gcc main.c -L. -lAdd -o main |
注意:-L.
选项告诉编译器在当前目录下查找库文件,-lAdd
选项告诉编译器链接名为libAdd.a
的库(注意不需要前缀lib
和后缀.a
)。
3.运行生成的可执行文件main
。
./main |
你应该会看到输出“The sum is: 5”。
第4关:Linux之动态库编写
以下是一个步骤指南,展示了如何完成这个过程:
1.编写C代码:
首先,你需要一个C文件(比如sub.c
)来定义你的函数:
// sub.c | |
#include <stdio.h> | |
int Sub(int a, int b) { | |
return a - b; | |
} |
2.编译为动态库:
使用gcc编译器将C代码编译为动态库。在Linux上,你可以使用-shared
和-fPIC
(Position Independent Code)选项来生成动态库:
gcc -shared -fPIC -o libSub.so sub.c |
这将生成一个名为libSub.so
的动态库文件。