linux下Makefile中包含有shared library动态链接库文件时候的简单例子
如果不知道什么是makefile,可以首先看我的另一篇博客:
linux下Makefile的简单例子及解释
http://www.cnblogs.com/lihaozy/archive/2012/08/09/2629706.html
其实,包含有shared library动态链接库文件的编译链接过程,和不包含的在dependency关系的处理上完全一样,没什么区别,只是g++编译链接含有shared library文件的时候,命令加上相对应的参数(-shared -fPIC -L. -ltest等)即可。
这里有2个文件,一个是test.cpp(中包含有一个test()函数),要编译成libtest.so
另一个是main.cpp(调用test()),要编译成main.o
然后将main.o和libtest.so链接成一个main(最终的可执行文件)
test.cpp -> libtest.so
main.cpp -> main.o
main.o + libtest.so -> main
下面是代码和makefile:
test.cpp & main.cpp:
//test.cpp #include <iostream> using namespace std;void test() {cout<<"test() in test.cpp"<<endl; }
//main.cpp #include <iostream> using namespace std;void test();int main() {test(); }
makefile:
main: main.o libtest.sog++ -o main main.o -L. -ltestmain.o: main.cppg++ -o main.o main.cpp -clibtest.so: test.cppg++ -o libtest.so test.cpp -shared -fPICclean:rm *so* *.o main
可以看到,没有太大的区别,dependecy的写法根本没变,只是加上一些参数而已。
linux下Makefile中包含有shared library动态链接库文件时候的简单例子相关推荐
- Linux下Makefile中动态链接库和静态链接库的生成与调用
背景:写这篇博客的原因是:最近在搞嵌入式,需要交叉编译opencv库文件,自己写Makefile,通过arm-linux-g++编译.链接.生成可执行文件,从而实现了移植的过程.平台是Toradex的 ...
- linux下makefile中cp,make与makefile 的理解
当我们写程序过程中存在多个文件之间有复杂的包含关系时,若修改了其中一个源文件,就重新编译所有文件,一般是不必要的,并且当文件很多时,就显得非常笨拙.所有包含该文件的文件需要重新编译,而其它无关系的文件 ...
- linux下makefile
概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,mak ...
- linux下Makefile学习--注释很好
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,makefile还 ...
- Linux下makefile教程
概述 -- 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都 为你做了这个工作,但我觉得要作一个好的和 professional的程序员,mak ...
- LINUX下tar.gz包的安装方法
LINUX下tar.gz包的安装方法 在tar.gz的东西不多了---- ======================================== 大多以tar.gz 和tar.bz2打包软件 ...
- Linux下Makefile的automake生成全攻略(转)
Linux下Makefile的automake生成全攻略(转)[@more@] 文/余涛 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便 ...
- Linux下 QT中 log4cplus 最基本配置及使用
Linux下 QT中 log4cplus 最基本配置及使用 鉴于网上很多使用方法不是很详细,对小白不友好,并且以此作为记录,方便下次配置. 本文是基于我自己下载的版本写的,请各位根据自己下载的版本更改 ...
- Linux下C++中可使用的3种Hook方法
Hook即钩子,截获API调用的技术,是将执行流程重定向到你自己的代码,类似于hack.如使程序运行时调用你自己实现的malloc函数代替调用系统库中的malloc函数.这里介绍下Linux下C++中 ...
最新文章
- AVCDecoderConfiguration语法格式分析
- 爬虫总结(三)-- cloud scrapy
- CodeForces - 1339C Powered Addition(思维+贪心)
- Go-cron定时任务
- 学习人工智能不走捷径,走大道的方式
- php7扩展sphinx,php7进行安装sphinx简单记录
- 第十五讲 循环体for基础
- Asp.net页面生命周期详解任我行(2)-WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用...
- python安装chardet_Python使用chardet判断字符编码
- cubietruck下配置aria2+yaaw
- 关于高级交互设计师的5个经验总结
- [USACO16DEC]Team Building团队建设
- 重庆大学计算机学院学术委员会,学术委员会
- 多分类任务ovo、ovr及softmax回归
- Linux 命令详解之df命令
- 重磅!这些高校公布扩招规模,博士将达10万人……
- 脑院计算机专业,神经元规模最大的类脑计算机诞生
- Cesium 无法加载出地球
- 提升电磁兼容性的软件策略:EMC不只是硬件工程师的锅
- git下载并安装以及gitee的使用(快速搭建属于自己的云仓库)