linux下制作静态库和动态库的方法
2009-04-25 20:47
369 查看
我们都知道 *.a 代表静态库;*.so 代表动态库。那么这两个库到底怎么制作呢?
制作静态库的方法:
把代码编译为目标文件形式:
# gcc -c liberr.c -o liberr.o
使用工具ar创建一个存档文件:
# ar rcs liberr.a liberr.o
编译程序时把程序和liberr.a链接起来:
# gcc errtest.c -o errtest -static -L./ -lerr
制作动态库的方法:
首先编译目标文件:
# gcc -fPIC -g -c liberr.c -o liberr.o
然后链接库:
#gcc -g -shared -Wl,-soname,liberr.so -o liberr.so.1.0.0 liberr.o -lc
把生成的动态库liberr.so.1.0.0拷贝到/usr/lib目录里:
#cp liberr.so.1.0.0 /usr/lib
进入/usr/lib目录建立两个链接文件:
#cd /usr/lib
#ln -s liberr.so.1.0.0 liberr.so.1
#ln -s liberr.so.1.0.0 liberr.so
编译程序时和动态库链接起来:
#gcc errtest.c -o errtest -lerr
附加的常识:
编译时,标准的头文件在 /usr/include 下,系统编译时默认自动到这搜索。
若要自定义的头文件,用户可通过在命令中加 –I <库路径> 到额外指定的头文件搜索自己要包含的头文件。
而系统默认的链接库搜索路径在 /usr/lib , /lib 下,若要链接自己制定的库要在命令中加上 -l<库名> -L <库的路径>
其中:–l 指定要链接的具体库名
-L 到额外库搜索的路径
例:g++ hello.cpp –o hello –I /usr/lib/qt-3.1/include –lqt –L /usr/lib/qt-3.1/lib
解释:-lqt 代表链接 qt 库,其中qt 库在/usr/lib/qt-3.1/lib下的名是libqt.so
–L /usr/lib/qt-3.1/lib 代表路径在/usr/lib/qt-3.1/lib 下
制作静态库的方法:
把代码编译为目标文件形式:
# gcc -c liberr.c -o liberr.o
使用工具ar创建一个存档文件:
# ar rcs liberr.a liberr.o
编译程序时把程序和liberr.a链接起来:
# gcc errtest.c -o errtest -static -L./ -lerr
制作动态库的方法:
首先编译目标文件:
# gcc -fPIC -g -c liberr.c -o liberr.o
然后链接库:
#gcc -g -shared -Wl,-soname,liberr.so -o liberr.so.1.0.0 liberr.o -lc
把生成的动态库liberr.so.1.0.0拷贝到/usr/lib目录里:
#cp liberr.so.1.0.0 /usr/lib
进入/usr/lib目录建立两个链接文件:
#cd /usr/lib
#ln -s liberr.so.1.0.0 liberr.so.1
#ln -s liberr.so.1.0.0 liberr.so
编译程序时和动态库链接起来:
#gcc errtest.c -o errtest -lerr
附加的常识:
编译时,标准的头文件在 /usr/include 下,系统编译时默认自动到这搜索。
若要自定义的头文件,用户可通过在命令中加 –I <库路径> 到额外指定的头文件搜索自己要包含的头文件。
而系统默认的链接库搜索路径在 /usr/lib , /lib 下,若要链接自己制定的库要在命令中加上 -l<库名> -L <库的路径>
其中:–l 指定要链接的具体库名
-L 到额外库搜索的路径
例:g++ hello.cpp –o hello –I /usr/lib/qt-3.1/include –lqt –L /usr/lib/qt-3.1/lib
解释:-lqt 代表链接 qt 库,其中qt 库在/usr/lib/qt-3.1/lib下的名是libqt.so
–L /usr/lib/qt-3.1/lib 代表路径在/usr/lib/qt-3.1/lib 下
相关文章推荐
- linux下制作静态库和动态库的方法
- linux下制作静态库和动态库的方法
- linux下制作静态库和动态库的方法
- 最新历史版本 :linux中编译静态库(.a)和动态库(.so)的基本方法
- Linux 动态库与静态库制作及使用详解
- Linux下生成(加载)动态库静态库和加载示例方法
- Linux下静态库和共享库的制作方法
- linux下,动态库和静态库的编译方法(实例说明)
- 在linux下制作静态库和动态链接库的方法
- Linux下静态库和动态库(共享库)的制作与使用
- Linux 动态库与静态库制作
- linux中编译静态库(.a)和动态库(.so)的基本方法
- Linux下静态库和动态库(共享库)的制作与使用
- 技巧:Linux 动态库与静态库制作及使用详解
- 技巧:Linux 动态库与静态库制作及使用详解
- Linux下用Makefile制作动态库和静态库并编译生成可执行程序
- Linux中静态库和共享库的制作方法
- linux下生成动态库和静态库的方法
- 在linux下制作静态库和动态链接库的方法
- linux 静态库和动态库的制作