2.2 把add.c sub.c中的函数制作成动态库libmymath.so,编译重新编译main.c,链接需要的库,生成可执行程序并运行。
时间: 2024-02-21 14:01:04 浏览: 23
好的,让我来一步步教你如何完成这个任务。
第一步:编译 add.c 和 sub.c,生成动态库 libmymath.so
我们需要使用以下命令来编译 add.c 和 sub.c:
```
gcc -shared -fPIC add.c sub.c -o libmymath.so
```
这个命令的意思是:
- `-shared` 选项指示编译器生成一个共享库,也就是动态库。
- `-fPIC` 选项指示编译器生成位置无关代码,这是动态库所必需的。
- `add.c sub.c` 是要编译的源文件。
- `-o libmymath.so` 指定输出的动态库文件名为 libmymath.so。
执行完这个命令后,会在当前目录下生成 libmymath.so 文件。
第二步:编译 main.c,链接动态库 libmymath.so,生成可执行程序
我们需要使用以下命令来编译 main.c 并链接动态库 libmymath.so:
```
gcc main.c -L. -lmymath -o myprogram
```
这个命令的意思是:
- `main.c` 是要编译的源文件。
- `-L.` 选项指示编译器在当前目录下查找动态库文件。
- `-lmymath` 选项指示编译器链接动态库 libmymath.so。
- `-o myprogram` 指定输出的可执行程序文件名为 myprogram。
执行完这个命令后,会在当前目录下生成 myprogram 可执行程序。
第三步:运行可执行程序
我们可以使用以下命令来运行可执行程序 myprogram:
```
./myprogram
```
这个命令的意思是在当前目录下运行名为 myprogram 的可执行程序。
这样,我们就完成了把 add.c 和 sub.c 制作成动态库 libmymath.so,编译重新编译 main.c,并链接需要的库,生成可执行程序并运行的任务。