gpt4 book ai didi

Go 代码构建链接器错误。我可以手动链接吗?

转载 作者:IT王子 更新时间:2023-10-29 02:23:16 29 4
gpt4 key购买 nike

我正在构建大量使用 CGo 的 Go 代码,并且此代码必须编译到共享或静态库中(静态是首选)。 ( code for reference )

在 Linux 和 Mac 上一切正常,但在 Windows 上它在链接器阶段失败,要么说所有 4 种模式(c-shared、shared、c-archive、archive)都不可用,要么如果调用 go tool link -shared 手动提示缺少 Windows 特定说明。

我的理解是,构建可用的 lib.a 所需要做的就是将我将使用的所有内容编译到目标文件 (*.o) 中,然后通过 ar 生成可用的静态库。

现在的问题是我是否可以完全跳过 Go 的链接器并基于准备好的 .o 文件手动创建 .a

如果可能的话,我会怎么做呢?

最佳答案

Windows 上的 gcc 似乎无法自动发现必要的共享库。问题是由 GCC 而不是 Go 引起的。

虽然为了编译 Go,我不得不使用自编译的大师提示,因为当前版本 (1.6.2) 不支持 windows/amd64 上的共享/静态库。

在默认位置 (C:\Windows\SysWOW64) 中为每个共享库(ntdll、winmm 等)手动输入 gcc 已解决此问题。

关于Go 代码构建链接器错误。我可以手动链接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954362/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com