编译一个so库并添加引用其他文件库
时间: 2023-12-06 21:45:26 浏览: 28
编译一个so库并添加引用其他文件库的步骤如下:
1. 编写源代码文件,并将其保存为 .c 或 .cpp 文件。
2. 使用 gcc 或 g++ 编译源代码文件,生成目标文件。例如,对于 C 语言程序,可以使用以下命令编译目标文件:
```
gcc -c -fPIC example.c -o example.o
```
对于 C++ 程序,可以使用以下命令编译目标文件:
```
g++ -c -fPIC example.cpp -o example.o
```
其中,-c 表示只编译不链接,-fPIC 表示编译成位置独立的代码。生成的目标文件默认会命名为 example.o。
3. 将目标文件打包成共享库。对于 C 语言程序,可以使用以下命令生成共享库:
```
gcc -shared -o libexample.so example.o -L/path/to/lib -ldependency
```
对于 C++ 程序,可以使用以下命令生成共享库:
```
g++ -shared -o libexample.so example.o -L/path/to/lib -ldependency
```
其中,-shared 表示生成共享库,-o 表示指定输出文件名为 libexample.so,-L 指定库文件的路径,-l 指定依赖的其他库文件。
4. 将生成的共享库文件放到系统路径中,或者在编译其他程序时指定库文件路径。
如果将共享库文件放到系统路径中,可以使用以下命令:
```
sudo cp libexample.so /usr/local/lib/
sudo ldconfig
```
如果在编译其他程序时指定库文件路径,可以使用以下命令:
```
g++ -o program main.cpp -L/path/to/lib -lexample
```
其中,-L 指定库文件的路径,-l 指定依赖的库文件名。