当前位置:   article > 正文

Linux C++,so动态库 示例实例_linux so文件的c++项目

linux so文件的c++项目

Linux C++,so动态库 示例实例

本文以Eclipse集成开发环境为例进行说明。

一、主要步骤

(1)创建动态连接库(.so)工程
(1.1)建立.so工程;
(1.2)添加MyHelloworld.cpp、MyHelloworld.h文件
(1.3)添加 -fPIC编译选项
(1.4)新增自定义成员函数:PrintHelloWorld函数
(1.5)设置“.so”动态链接库名称
(1.6)设置.so动态链接库生成路径

(2)创建Main主程序
(2.1)创建Main主程序
(2.2)设置部署路径

(3)调用.so动态库
(3.1)添加调用代码
(3.2)添加.h文件引用目录(.h文件复制到本工程中的相对目录)
(3.3)添加.so库文件 编译路径(注意:是编译路径;运行路径后面还需单独再次设置)
(3.4)export 设置.so运行 生效环境变量

(4)编写启动脚本,自动执行export

注意:过程中有异常处理:,报“cannot open shared object file:No Such file or directory”

二、示例源代码

.so工程源代码

/*
 * MyHelloWorld.h
 *
 *  Created on: 2022年3月13日
 *      Author: limg
 */

#ifndef MYHELLOWORLD_H_
#define MYHELLOWORLD_H_

class MyHelloWorld {
   
public:
	MyHelloWorld();
	virtual ~MyHelloWorld();
	bool PrintHelloWorld();
};

#endif /* MYHELLOWORLD_H_ */

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
/*
 * MyHelloWorld.cpp
 *
 *  Created on: 2022年3月13日
 *      Author: limg
 */

#include "MyHelloWorld.h"

#include <stdio.h>

MyHelloWorld::MyHelloWorld() {
   
	// TODO Auto-generated constructor stub

}

MyHelloWorld::~MyHelloWorld() {
   
	// TODO Auto-generated destructor stub
}

bool MyHelloWorld::PrintHelloWorld(
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/766900
推荐阅读
相关标签
  

闽ICP备14008679号