分享
  1. 首页
  2. 文章

go语言开发动态库

笑吧小鸟 · · 2127 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go build 可以指定buildmode。分为了多种模式。具体模式如下。

模式 说明(当前go版本 1.10.3)
archive 编译成二进制文件。一般是静态库文件。 xx.a
c-archive 编译成C归档文件。C可调用的静态库。xx.a。注意要编译成此类文件需要import C 并且要外部调用的函数要使用 "//export 函数名" 的方式在函数上方注释。否则函数默认不会被导出。
c-shared 编译成C共享库。同样需要 import "C" 和在函数上方注释 // export xxx
default 对于有main包的直接编译成可执行文件。没有main包的,编译成.a文件
exe 编译成window可执行程序
plugin 将main包和依赖的包一起编译成go plugin。非main包忽略。【类似C的共享库或静态库。插件式开发使用】

编译生成 DLL 文件

MinGW 安装后有一个叫做 Run terminal 的快捷方式,运行后进入命令行方式,进入 exportgo.go 所在目录,运行如下命令:

go build -buildmode=c-shared -o exportgo.dll exportgo.go ———————————————— 版权声明:本文为CSDN博主「quicmous」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/quicmous/article/details/102772419

MinGW已经不推荐使用。只有32位版,更新速度也不怎么样。

MinGW-w64更新最快,基本上gcc更近后几周内就会跟进。32位和64位都提供。

TDM-GCC,更新速度也不怎么样,同时提供32位和64位。

涉及64位时,TDM-GCC和MinGW-w64还有一个重要的区别,64位的TDM-GCC既能编译64位binary,也能编译32位binary(用-m32参数)。而MinGW-w64无此能力,你需要装32位和64位的两套MinGW w64 tool chain来编译两种binary。

MinGW: 编译目标仅兼容 32 位应用程序,最新的官方二进制版本为 GCC 9.2.0。

MinGW-w64: 衍生自 MinGW 的项目,编译目标兼容 32 位应用程序与和64 位应用程序,最新的官方二进制版本为 GCC 8.1.0。(MingW-W64-builds)

TDM-GCC: 衍生自 MinGW 和 MinGW-w64 的项目,分为 32 位与 64 位两个版本,32 位版本的编译目标仅兼容 32 位应用程序,64位版本的编译目标兼容 32 位应用程序和 64 位应用程序,最新的官方二进制版本为 GCC 9.2.0。

参考文章

原文链接:https://blog.csdn.net/github_33719169/article/details/84826983

[golang学习笔记-生成windows平台的dll文件]https://blog.csdn.net/qq_30549833/article/details/86157744

Golang 编译生成 DLL 文件


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:笑吧小鸟

查看原文:go语言开发动态库

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2127 次点击
1 回复 | 直到 2020年04月30日 15:37:06
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏