繁体   English   中英

使用来自 github 的包时尝试编译 golang 时出错

[英]Error when trying to compile golang when using package from github

我正在尝试在我的笔记本电脑上安装robotgo 包。 我使用命令go get github.com/go-vgo/robotgo下载并安装它

然后我运行此代码,但它无法编译并返回以下错误

package main

import (
    "fmt"

    "github.com/go-vgo/robotgo"
)

func main() {
    x, y := robotgo.GetMousePos()
    fmt.Println("pos: ", x, y)
}

错误:

# command-line-arguments
C:\Go\pkg\tool\windows_amd64\link.exe: running gcc failed: exit status 1
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `default_logger':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../hook/windows/../logger_c.h:39: undefined reference to `__getreent'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../hook/windows/../logger_c.h:32: undefined reference to `__getreent'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `loggerProc':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/pub.h:97: undefined reference to `__getreent'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_retain':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:426: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_wait':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:453: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:648: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `cleanup_ops':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:857: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_retain':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:777: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_assert_print':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:146: undefined reference to `__getreent'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_create':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:390: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_free':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:358: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:349: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_release':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:432: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_port_signal':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:439: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `cleanup_ops':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:866: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:866: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `recv_unbuf':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1210: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o:C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1180: more undefined references to `sched_yield' follow
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `try_op':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1249: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_release':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:783: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_close':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:796: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_close':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:791: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_buf_cap':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:830: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_buf_len':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:843: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:835: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `cleanup_ops':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:866: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:866: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `recv_unbuf':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1210: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1180: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o:C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:620: more undefined references to `sched_yield' follow
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `try_op':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1249: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_add':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:597: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:651: undefined reference to `sched_yield'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_add':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:592: undefined reference to `__assert_func'
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:591: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_signal_first':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:648: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `eb_chan_select_list':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:1299: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `port_list_rm':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:617: undefined reference to `__assert_func'
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o:C:\Users\sieea\go\src\github.com\robotn\gohook/event/../chan/eb_chan.h:616: more undefined references to `__assert_func' follow
C:\Users\sieea\AppData\Local\Temp\go-link-143133203\000004.o: In function `dispatch_proc':
C:\Users\sieea\go\src\github.com\robotn\gohook/event/dispatch_proc.h:66: undefined reference to `__getreent'
collect2.exe: error: ld returned 1 exit status

我的系统路径中有 MinGW-W64,该代码和库在我的台式电脑上运行,但我不知道为什么它在我的笔记本电脑上不起作用。 我已经多次重新安装 MinGW、Go 和 Goland 以尝试使其正常工作,但我不知道问题出在哪里。

任何帮助表示赞赏

尝试用https://jmeubank.github.io/tdm-gcc/替换您的 MinGW 安装

几天前,我一直在 Windows 上使用另一个 cgo 包,尝试了几个不同的 MinGW 版本等等。 在网上的某个地方,我发现 GCC 的这种分布与 Win 上的 cgo 配合得很好。 安装它,一切都像魅力一样工作!

我知道这不是一个非常详细的答案,但如果您只是需要它来工作 - 可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM