go - 如何在 cgo 中正确使用 64 位 TDM-GCC?

标签 go cgo tdm-gcc

<分区>

我正在尝试使用 github.com/hajimehoshi/ebiten 上的库。无论我做什么,我都会遇到这个错误:

# github.com/go-gl/glfw/v3.2/glfw
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
# github.com/go-gl/gl/v2.1/gl
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

我尝试更新 MinGW

mingw-get udpate

我已经为 MinGW 设置了 PATH 变量。

我已经下载了 MinGW-w64 here .

我走了here并下载了 tdm-gcc 64 包。

而且,我仍然遇到了同样的错误。我该如何避免这种情况?

最佳答案

  1. 阅读cgo manual , 请注意 go 工具如何为外部调用编译器 它支持的语言。

  2. 运行

     go env
    

    并查看变量 CCCXX 它将向您显示: go 工具链会调用 C 和 C++ 编译器进行编译 分别为 C 和 C++ 代码。

    我打赌它会分别显示“裸”名称,例如 gccg++

    请注意,当 Windows 上的程序在未指定的情况下运行时 它的完整路径名(即,以驱动器号开头, 接着是 :\ 有趣的结构,然后是路径的其余部分—— 以实际程序文件名结尾),查找程序文件 在一组由所谓的内容定义的路径中 environment variable called "PATH" .

    PATH 环境。变量可以是系统范围的和每个用户的; 后者胜过前者。

  3. 在 shell 中,运行

     echo %PATH%
    

    并查看是否列出了已安装的任何路径名 C/C++ 编译器。 我打赌会有一些 32 位 GCC 的路径,但不是你的 64 位套件。

  4. 确保您的 PATH 环境。变量包含目录的条目 包含名称匹配的 64 位编译器的可执行程序 go env 输出中列出的适当名称。

    更多详细信息,请参阅编译器的安装手册。

如果一切都失败了,请在 https://superuser.com 询问有关安装该编译器的具体问题.

关于go - 如何在 cgo 中正确使用 64 位 TDM-GCC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47007233/

相关文章:

c++ - 如何使用 SWIG 和 CGO 将 io.Reader 转换为 std::istream?

go - 调用需要 sockaddr 的 C 函数

c - 为什么通过命令提示符编译 C 程序时未创建 *.o(对象)文件?

google-app-engine - 有什么方法可以在 Golang 中处理带有空格的 Google Datastore Kind Property 名称?

loops - 指针 slice 和循环

Golang 从文件中读取 - 锁定是否安全?

go - 如何模拟调用 io.Copy 的函数

go - 释放 C 对象的 Go 结构

c - 哪里可以下载 dwmapi.lib?