博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux环境下使用eclipse开发C++动态链接库程序
阅读量:7086 次
发布时间:2019-06-28

本文共 1323 字,大约阅读时间需要 4 分钟。

Linux中也有类似windows中DLL的变成方法,只不过名称不同而已。在Linux中,动态链接叫做Standard Object,生成的动态链接文件为*.so。详细请参考相关文档。

开发环境:Eclipse 3.4.2

G++:4.3.2

1. 创建动态链接库

(1)在Eclipse中创建新的C++工程

File->New->Project->C++->C++ Project,选择Shared Library。

(2)创建源代码文件

File->New->Source File,指定名称为shared.cc

(3)编写源码

 

[cpp] 
 
  1. /* 
  2.  * Test.cc 
  3.  * 
  4.  *  Created on: Oct 10, 2009 
  5.  *      Author: fify 
  6.  */  
  7. #include <iostream>  
  8. using namespace std;  
  9. void show()  
  10. {  
  11.     cout << "Shared Library." << endl;  
  12. }  

 

编译之后将在工程目录下生成一个libshared.so文件,这就是我们要用的动态链接库文件

2. 调用动态链接库文件

(1)创建C++工程,选择Executable类型工程

(2)添加Source File,并编写源码

 

[cpp] 
 
  1. //============================================================================  
  2. // Name        : Import.cpp  
  3. // Author      : Fify  
  4. // Version     :  
  5. // Copyright   : Fify copyleft  
  6. // Description : Hello World in C++, Ansi-style  
  7. //============================================================================  
  8. #include <iostream>  
  9. using namespace std;  
  10. void show();  
  11. int main()  
  12. {  
  13.     show();  
  14.     return 0;  
  15. }  

 

(3)设置导入动态库

Project->Properties->C/C++ Build->Settings->Tool Settings->GCC C++ Linker->Libraries

添加Libraries (-l): shared

添加Library search path (-L): {刚才编译生成的*.so文件路径}

(4)编译该项目

3. 运行含动态链接库的程序

点击运行,会出现以下错误:error while loading shared libraries: libShared.so: cannot open shared object file: No such file or directory ,因为系统无法从默认位置找到动态链接库文件。修改系统默认搜索链接库的路径,程序即可顺利执行,输出:

Shared Library.

修改动态库搜索路径的方法有五种,参考: ,这里不在详细介绍

转载地址:http://ilyql.baihongyu.com/

你可能感兴趣的文章
可执行镜像——开发环境的Docker化之路
查看>>
使用自选择创建团队
查看>>
基于组织目标采用合适的敏捷方法
查看>>
Spark性能调优之道——解决Spark数据倾斜(Data Skew)的N种姿势
查看>>
李彦宏宣布百度架构调整:智能云事业部升级
查看>>
NetBeans第一部分代码提交Apache
查看>>
支持医学研究的Apple开源移动框架
查看>>
使用人工智能测试软件
查看>>
InfoQ趋势报告:DevOps 和云计算
查看>>
Microsoft Edge中新的F12开发者工具
查看>>
为所有PHP-FPM容器构建单独的Nginx Docker镜像
查看>>
微软宣布Azure Functions正式支持Java
查看>>
抖音成2018年全球iOS设备上下载最多的应用\n
查看>>
IBM核心软件如何应对“互联网+”的技术挑战
查看>>
Weaveworks增加发布自动化和事件管理
查看>>
LeetCode[337] House Robber III
查看>>
Weblogic 12c 使用 WLST 新建域
查看>>
快速掌握dockerfile
查看>>
Android动态设置主题(使用RxBus模式)
查看>>
CMake 简介和 CMake 模板
查看>>