cgo 调用dll Failed to load xxxxx.dll: The specified module could not be found.

1 篇文章 0 订阅
本文档记录了一个Go项目在cgo中调用DLL文件时遇到的问题及解决方案。问题在于运行时无法找到指定的DLL文件,通过调整工作目录到包含DLL的windows_dist文件夹解决了问题。分析指出,正确设置工作目录对于动态链接库的查找至关重要。
摘要由CSDN通过智能技术生成
一、cgo项目调用dll文件一直显示
Failed to load xxxxx.dll: The specified module could not be found.
二、项目目录结构大致如下
cashop
   cgodemo
      include
         cgodemo.h
      lib
         xxxx.so
         xxxx.so.4.5
      go.mod 
      cgodemo_linux.go 
      cgodemo_windows.go
router
model
template
widows_dist
   config.yaml
   xxxx.dll
   xxxxxxx.dll
   xxxxx.dll
go.mod 
go.sum
main.go
三、go.mod文件 replace本地库
module xxx

go 1.14

require (
	cashop/cgodemo v1.0.0
	github.com/gin-gonic/gin v1.7.7
	...
)

replace cashop/cgodemo v1.0.0 => ./cgodemo 
四、goland执行报错
Failed to load xxxxx.dll: The specified module could not be found.
五、修改goland工作以及输出目录,重新编译,解决问题

在这里插入图片描述

分析原因

在cgodemo cgodemo_windows.go中调用了了windows_dist文件夹下的xxxx.dll文件
因为没有设置默认工作目录导致实际执行再根目录,设置工作目录为windows_dist可以查找到对应的dll文件了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值