首页 / LINUX / Linux 下的动态库 -- 例程
Linux 下的动态库 -- 例程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux 下的动态库 -- 例程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1192字,纯文字阅读大概需要2分钟。
内容图文
![Linux 下的动态库 -- 例程](/upload/InfoBanner/zyjiaocheng/1172/3232aca407a542b2aacd370f15197a62.jpg)
head.h
#include<iostream> void fun1(); void fun2(); void fun3();
fun1.cpp
#include "head.h" void fun1() { std::cout<<"fun1"<<std::endl; }
fun2.cpp
#include "head.h" void fun2() { std::cout<<"fun2"<<std::endl; }
fun3.cpp
#include "head.h" void fun3() { std::cout<<"fun3"<<std::endl; }
main.cpp
#include "head.h" int main() { fun1(); fun2(); fun3(); }
将fun1.cpp,fun2.cpp,fun3.cpp生成目标文件
g++ –c fun1.c fun2.c fun3.c
用ar命令生成一个libmyfun.a的静态库文件,并把fun1.o,fun2.o,fun3.o内容插入到对应的库文件中
ar r libmyfun.a fun1.o fun2.o fun3.o
静态连接方式生成可执行文件
g++ -o myfuntest main.cpp -L . -lmyfun
运行可执行文件
./myfuntest
即可看见运行结果
利用以上代码和文件创建动态库
g++ -fpic -shared -o libmyfun.so fun1.o fun2.o fun3.o
其中:
-fpic 使输出的对象模块是按照可重定位地址方式生成的。
-shared指定把对应的源文件生成对应的动态链接库文件libmyfun.so文件。
利用动态库生成可执行文件
g++ -o somyfuntest main.cpp -L . -lmyfun
与静态库的利用不同的是,在默认情况下,当程序运行时,系统会搜索/lib和/usr./lib库,如果连接库没有存在这两个目录下,系统将不能找到链接库,程序会终止运行。所以,一般情况下我们需要手动的添加路径或者更改LD_LIBRARY_PATH的环境变量。
前者,我们需要把当前生成的动态库的路径加到/usr/local/lib下面。我一般情况下习惯于用后一种方法,我习惯于这样做,export LD_LIBRARY_PATH=$PWD,然后我们就可以执行可执行文件somyfuntest了。
原文:http://blog.csdn.net/jack_wong2010/article/details/21711453
内容总结
以上是互联网集市为您收集整理的Linux 下的动态库 -- 例程全部内容,希望文章能够帮你解决Linux 下的动态库 -- 例程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。