如何解决使用github的软件包时尝试编译golang时出错
我正在尝试在笔记本电脑上安装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配合得很好。安装它,一切都像魅力一样起作用!
我知道这不是一个非常详细的答案,但是如果您只需要它可以起作用-可能会有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。