1)阅读、理解和学习材料“用gcc生成静态库和动态库.pdf”和“静态库.a与.so库文件的生成与使用.pdf”,请在Linux系统(Ubuntu)下如实仿做一遍。
对于学习可执行程序的编译和组装过程,可以按照以下步骤在Linux系统(Ubuntu)下进行实践:
-
下载并阅读材料 “用gcc生成静态库和动态库.pdf” 和 “静态库.a与.so库文件的生成与使用.pdf”,确保你对静态库和动态库的生成和使用有基本的了解。
-
在Ubuntu系统中打开终端,确保你已经安装了gcc编译器和相应的开发库。你可以通过运行以下命令来安装gcc:
sudo apt update sudo apt install build-essential
3.创建一个简单的C程序,用于生成静态库和动态库。你可以使用任何文本编辑器创建一个名为"example.c"的文件,并将以下代码复制到文件中:
-
#include <stdio.h> void hello() { printf("Hello, World!\n"); }
4.编译并生成静态库。在终端中运行以下命令:
gcc -c example.c // 编译为目标文件example.o ar rcs libexample.a example.o // 将目标文件打包为静态库libexample.a
5.编译并生成动态库。在终端中运行以下命令:
gcc -shared -o libexample.so example.o // 将目标文件编译为动态库libexample.so
这将生成名为"libexample.so"的动态库文件。
6.创建一个新的C程序,用于使用生成的静态库和动态库。你可以使用任何文本编辑器创建一 个名为"main.c"的文件,并将以下代码复制到文件中:
extern void hello(); //声明外部函数
int main() {
hello(); //调用外部函数
return 0;
}
编译并生成可执行程序。在终端中运行以下命令:
-
使用静态库:
gcc -o main main.c -L. -lexample //将main.c与静态库libexample.a链接生成可执行程序main
使用动态库: