golang编译so动态库加载失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang编译so动态库加载失败相关的知识,希望对你有一定的参考价值。

Golang编译so动态库加载失败的原因可能有很多,首先,检查动态库文件是否正确安装,其次,检查编译选项是否正确,比如-shared参数是否被正确设置,最后,追踪运行时出现的导致加载失败的错误,可能是某个符号没有被找到或者版本不匹配等情况。 参考技术A 这很可能是因为某些具体问题出现了问题,例如动态库没有正确地安装或者编译程序中存在一些语法错误。建议检查程序的原始代码并进行调试,以帮助找出可能的问题原因,并根据错误信息进行调整。

golang 调用 c++动态库(winlinux环境)

在生产时,经常会使用golang调用已有的c++库,以下分别演示在linux 跟 windows开发环境下怎样加载动态库。

linux下的动态库为.so文件、win动态库为.dll文件

test.cpp 生成 test.so(linux)、 test.dll(win)


#ifdef _WINDOWS
#else
#define WINAPI

extern "C" WINAPI int testFunc() {
	return 0;
}

linux开发环境

demo.go

package main

import "C"

func main()  {
	C.int res = C.testFunc()
}

Windows开发环境

package main

func main() {
	h := syscall.MustLoadDLL("test.dll")
	res := h.MustFindProc("testFunc").Call()
	
}

以上是关于golang编译so动态库加载失败的主要内容,如果未能解决你的问题,请参考以下文章

golang 调用 c++动态库(winlinux环境)

虹软人脸识别 - Android平台调用动态库时的常见错误解析

Golang调用动态库so

Flutter 应用加载动态库失败

c语言动态库的加载问题!!!!请高手指点!!!!!!!!

linux动态库问题