golang调用java_Java调用Golang生成的动态库(dll,so)

0x01. 环境准备

A. GCC

在控制台中输入

gcc -v

如果提示命令未找到,那么说明你的计算机中还没有gcc,去安装一个吧,gcc官方网站:https://gcc.gnu.org/

如果从来没有安装过gcc的朋友可以直接安装win-build,可以帮你快速的安装

官方网站:http://mingw-w64.org/doku.php/download/win-builds

0x02. 编写go程序

我们这里只是编写一个简单的输出字符串的程序,接受一个字符串参数,然后将拼接成新的字符串并作为返回值返回,在这里,我们将文件命名为libhello.go

package main

import "C"

func helloLemonITCN(msg string) string {

return "LemonIT.CN : Hello! " + msg

}

func main() {

}

注意,即使是要编译成动态库,也要有main函数,上面的import "C"一定要有

0x03. 编译go程序

首先,将控制台的所在目录切换到go程序的所在目录,即libhello.go所在目录

A. Windows动态库

执行如下命令生成DLL动态链接库:

go build -buildmode=c-shared -o libhello.dll .\libhello.go

如果控制台没有报错,那么会在当前路径下生成libhello.dll文件

B. Linux/Unix/macOS动态库

执行如下命令生成SO动态库:

go build -buildmode=c-shared -o libhello.so .\libhello.go

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值