首页后端开发其他后端知识Golang中如何编译成dll,方法步骤是什么

Golang中如何编译成dll,方法步骤是什么

时间2024-03-26 23:14:03发布访客分类其他后端知识浏览314
导读:这篇文章给大家介绍了“Golang中如何编译成dll,方法步骤是什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Golang中如何编译成dll,方法步骤是什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟...
这篇文章给大家介绍了“Golang中如何编译成dll,方法步骤是什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Golang中如何编译成dll,方法步骤是什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。


Golang能封装成dll吗

Golang可以将程序编译成DLL文件,具体做法如下:

1、golang 编译 dll 过程中需要用到 gcc,所以先安装 MinGW。

windows 64 位系统应下载 MinGW 的 64 位版本: https://sourceforge.net/projects/mingw-w64/

2、下载后运行 mingw-w64-install.exe,完成 MingGW 的安装。

3、首先撰写 golang 程序 exportgo.go:

package main
import "C"
import "fmt"
//export PrintBye
func PrintBye() {

    fmt.Println("From DLL: Bye!")
}

//export Sum
func Sum(a int, b int) int {
    
    return a + b;

}

func main() {

    // Need a main function to make CGO compile package as C shared library
}
    

4、编译成 DLL 文件:

go build -buildmode=c-shared -o exportgo.dll exportgo.go

编译后得到 exportgo.dll exportgo.h 两个文件。

5、参考 exportgo.h 文件中的函数定义,撰写 C# 文件 importgo.cs:

using System;
    
using System.Runtime.InteropServices;

namespace HelloWorld
{

    class Hello 
    {
    
        [DllImport("exportgo.dll", EntryPoint="PrintBye")]
        static extern void PrintBye();
    
        [DllImport("exportgo.dll", EntryPoint="Sum")]
        static extern int Sum(int a, int b);

        static void Main() 
        {
    
            Console.WriteLine("Hello World!");
    
            PrintBye();
    
            Console.WriteLine(Sum(33, 22));

        }
    

编译 CS 文件得到 exe

csc importgo.cs

将 exe 和 dll 放在同一目录下,运行。

>
    importgo.exe
Hello World!
From DLL: Bye!
55



关于“Golang中如何编译成dll,方法步骤是什么”的内容就介绍到这,感谢各位的阅读,相信大家对Golang中如何编译成dll,方法步骤是什么已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang中如何编译成dll,方法步骤是什么
本文地址: https://pptw.com/jishu/653822.html
golang中文件读写方式有多少种,分别怎么实现 node.js和npm有什么关系?

游客 回复需填写必要信息