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

Posted BBinChina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 调用 c++动态库(winlinux环境)的主要内容,如果未能解决你的问题,请参考以下文章

golang cgo 使用总结

Golang实践录:调用C++函数

如何在golang 中调用c的静态库或者动态库

python调用golang编写的动态链接库

Golang调用动态库so

Golang调用windows下的dll动态库中的函数