在Linux的Eclipse中编译使用动态链接库
2017-05-20 11:23
363 查看
预备知识:
linux系统中静态库文件以.a结尾,动态库文件以.so结尾
调用动态库在程序运行时,操作系统会将.so文件加入到内存中,可以做到内存共享同时提供给多个客户使用
linux的编译中有两种风格(C和C++)默认是使用C风格的。在动态链接库中,输出的是函数,而不输出类,若输出类只能被C++调用。
程序执行时,系统查找文件目录的顺序为:
在windows中是首先在当前目录,其次是system32目录、最后是在path路径中。
而在linux中是在/usr/lib中查找的。
编译动态链接库:
一、在Eclipse中建立新的C++ Project,选择Shared Library,Cross GCC点确定。
二、在工程中加入你需要编译成动态链接库的文件
三、右键动态链接库工程,点属性--->C/C++Build--->Setting--->Cross G++ Compiler--->在Command一栏g++的后面添加-fPIC(PIC就是position independent code),点确定。
-fPIC 的使用,会生成 PIC 代码,.so 要求为 PIC,以达到动态链接的目的,否则,无法实现动态链接。
四、点击工程Project,Build All
至此,动态库文件就可以生成了。我们可以在动态库项目文件夹的Debug目录中找到该.so文件
动态库文件的使用
一、首先在项目工程中添加动态库中的所有头文件(添加方法:复制动态库中的所有头文件,在Eclipse的工程项目中右击Paste[这里可以在工程下自己建立一个src文件夹,将所有源文件和头文件放在文件夹中,方便管理])
二、在编译时,需要告诉当前工程我们LIB的名字以及存放的路径。
C++工程--->右键属性--->C/C++Build--->Setting--->Cross G++ Linker--->Library
上栏填动态库的名称。[ libTestLib.so ===其中第一个lib代表是文件类型,.so代表是动态库,剩下的字母是真正的库的名称 ]
下栏选.so文件所在的目录
三、在执行时,需要将.so文件拷贝到/user/lib目录里
最后,大功告成,我们可以调用动态链接库来运行我们的程序!!!
linux系统中静态库文件以.a结尾,动态库文件以.so结尾
调用动态库在程序运行时,操作系统会将.so文件加入到内存中,可以做到内存共享同时提供给多个客户使用
linux的编译中有两种风格(C和C++)默认是使用C风格的。在动态链接库中,输出的是函数,而不输出类,若输出类只能被C++调用。
程序执行时,系统查找文件目录的顺序为:
在windows中是首先在当前目录,其次是system32目录、最后是在path路径中。
而在linux中是在/usr/lib中查找的。
编译动态链接库:
一、在Eclipse中建立新的C++ Project,选择Shared Library,Cross GCC点确定。
二、在工程中加入你需要编译成动态链接库的文件
三、右键动态链接库工程,点属性--->C/C++Build--->Setting--->Cross G++ Compiler--->在Command一栏g++的后面添加-fPIC(PIC就是position independent code),点确定。
-fPIC 的使用,会生成 PIC 代码,.so 要求为 PIC,以达到动态链接的目的,否则,无法实现动态链接。
四、点击工程Project,Build All
至此,动态库文件就可以生成了。我们可以在动态库项目文件夹的Debug目录中找到该.so文件
动态库文件的使用
一、首先在项目工程中添加动态库中的所有头文件(添加方法:复制动态库中的所有头文件,在Eclipse的工程项目中右击Paste[这里可以在工程下自己建立一个src文件夹,将所有源文件和头文件放在文件夹中,方便管理])
二、在编译时,需要告诉当前工程我们LIB的名字以及存放的路径。
C++工程--->右键属性--->C/C++Build--->Setting--->Cross G++ Linker--->Library
上栏填动态库的名称。[ libTestLib.so ===其中第一个lib代表是文件类型,.so代表是动态库,剩下的字母是真正的库的名称 ]
下栏选.so文件所在的目录
三、在执行时,需要将.so文件拷贝到/user/lib目录里
最后,大功告成,我们可以调用动态链接库来运行我们的程序!!!
相关文章推荐
- ubuntu下动态链接库的编译和使用实例 分类: arm-linux-Ubuntu 2013-07-22 16:29 272人阅读 评论(0) 收藏
- Linux环境下使用eclipse开发C++动态链接库程序
- osip eXosip eclipse在linux的centos版本下编译使用
- Linux环境下使用Eclipse开发C++动态链接库程序
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- 老生常谈--关于Linux下编译和使用动态链接库静态链接库
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Linux环境下使用eclipse开发C++动态链接库程序
- linux下使用eclipse编译、链接、动态库的学习笔记
- buntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- 【ARM-Linux开发】Linux环境下使用eclipse开发C++动态链接库程序
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Linux使用eclipse编译,调试Nginx模块
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境