Linux/Android系统开发 c/c++代码加载so库的方法

本文介绍了在Linux和Android系统中,如何通过C/C++代码加载和使用第三方SO动态库。通过一个简单的helloworld示例,详细讲解了加载过程,并展示了代码实现。
摘要由CSDN通过智能技术生成

        在linux/android开发时,我们经常会遇到第三方的so库,如何加载这些so库呢,下面以helloworld的简单例程进行详细讲解,为了方便移植和管理,所有涉及加载实现相关的代码都放在so.cpp和so.h模块,实现代码如下:

so.cpp

//so.cpp

//
// Created by taxiang&xuezi on 2019-02-27.
//


#define SO_GLOBALS
#include "so.h"


typedef int (* helloworld_func)(char input[], int inlen, char output[], int outlen);


helloworld_func helloworld_c= NULL;
/*******************************************************************************
* 函数名称:int load_helloworld_so(const char *so_path)
* 函数功能:加载so库
* 输入参数:
* 输出参数:
* 返回值  :
*******************************************************************************/
int load_helloworld_so(const char *so_path)
{
    g_so_en = 0;
    g_handle = dlopen(so_path, RTLD_LAZY);
    if (g_handle == NULL) {
        printf("dlopen %s failed\n",so_path);
        return -1;
    }

    helloworld_c = (helloworld_func)dlsym(g_handle, "h
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值