Golang在FreeBSD上使用robotgo时遇到的错误解决
Golang在FreeBSD上使用robotgo时遇到的错误解决 我知道robotgo是为Linux和Mac OS构建的,但我认为FreeBSD应该相当类似。
我相信我已经安装了所有必要的库,但它们位于/usr/local/include目录下,而不是/usr/include。我的意思是,我已经在/usr/local/include目录下的头文件中,针对编译器报错的几个符号进行了grep搜索,并在那里找到了它们。
当尝试在我的系统上构建那个简单的鼠标示例时,最终遇到了未定义的符号,例如:
ld: error: undefined symbol: XCloseDisplay
>>> referenced by xdisplay_c.h:13 (/home/w/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:13)
>>> /tmp/go-link-2600121927/000002.o:(XCloseMainDisplay)
>>> referenced by xdisplay_c.h:13 (/home/w/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:13)
>>> /tmp/go-link-2600121927/000002.o:(XGetMainDisplay)
>>> referenced by screen_c.h:48 (/home/w/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:48)
>>> /tmp/go-link-2600121927/000002.o:(sys_scale)
>>> referenced 28 more times
我尝试导出环境变量,看看是否有帮助,但没有变化:
export CGO_LDFLAGS=-L/usr/local/include
任何帮助都将不胜感激。
更多关于Golang在FreeBSD上使用robotgo时遇到的错误解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html
这个错误看起来是加载器在抱怨它无法在某个对象库中找到外部函数,而不是编译器在抱怨它无法在某个头文件中找到该函数的导入。
也许目标文件在 /usr/local/lib 目录下? 所以你可能需要设置 CGO_LDFLAGS=-L/usr/local/lib?
更多关于Golang在FreeBSD上使用robotgo时遇到的错误解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
好的,第二次运行确实包含了“-L/usr/local/lib”(在很长的 /usr/bin/cc 命令行的末尾),所以你成功地改变了它的查找位置。但它仍然没有找到!
我查看了 robotgo 项目,似乎其他人也有构建问题;他们似乎在使用项目所有者的流程,该流程涉及 go build(并对环境和命令行标志进行了大量调整)。你的构建工具最终归结于此吗?
我对这个项目的细节了解不够,无法提供进一步的帮助。我看到你已经在 github 上提出了一个问题,这应该能行。你可以尝试添加一个日志,记录你的构建工具生成的完整命令行,并说明你在哪里找到了实际的 X11 目标文件。


