加载和可执行文件不在同一文件夹下的动态库

引入

有如下图中的文件结构,TestVideoCodec.exe 需要动态加载 Plugins 文件夹下面的 xxx.dll;xxx.dll 又链接了其他库,这些库放在Plugins下面,为了使程序能够正确加载到 xxx.dll,则需要按照后续章节中的描述进行加载或设置。

Windows 下

代码中加载动态库时使用:

LoadLibraryExA(filename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH)

注:其中 filename(dll路径)需要设置绝对路径并且路径中文件夹的分隔符只能是 \\

Linux 下

使用 LD_LIBRARY_PATH 指定需要调用的库的位置。例如:

#!/bin/bash

current_path=.
plugins_path=./Plugins/

export LD_LIBRARY_PATH=$current_path:$plugins_path:$current_path:$LD_LIBRARY_PATH

# set collect core file.
ulimit -c 1000000
ulimit -n 100000

$(pwd)/testVideoCodec

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值