Skip to content

robotgo does not build on FreeBSD #715

Open
@walterjwhite

Description

@walterjwhite

I have the necessary libraries; however, robotgo and the c libraries are expecting the headers to live @ /usr/include rather than /usr/local/include.

What is the best way to get this running on FreeBSD?

I am trying to build a simple example which is based off of the mouse example.

# github.com/go-vgo/robotgo
In file included from /home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/robotgo.go:48:
In file included from /home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/goWindow.h:12:
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:242:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:266:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:281:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
# cmd/example/robotgo/mouse
/usr/local/go123/pkg/tool/freebsd_amd64/link: running cc failed: exit status 1
/usr/bin/cc -m64 -o $WORK/b001/exe/a.out -Wl,--export-dynamic-symbol=__progname -Wl,--export-dynamic-symbol=_cgo_panic -Wl,--export-dynamic-symbol=_cgo_topofstack -Wl,--export-dynamic-symbol=crosscall2 -Wl,--export-dynamic-symbol=environ -Qunused-arguments -Wl,--compress-debug-sections=zlib /tmp/go-link-722109930/go.o /tmp/go-link-722109930/000000.o /tmp/go-link-722109930/000001.o /tmp/go-link-722109930/000002.o /tmp/go-link-722109930/000003.o /tmp/go-link-722109930/000004.o /tmp/go-link-722109930/000005.o /tmp/go-link-722109930/000006.o /tmp/go-link-722109930/000007.o /tmp/go-link-722109930/000008.o /tmp/go-link-722109930/000009.o /tmp/go-link-722109930/000010.o /tmp/go-link-722109930/000011.o /tmp/go-link-722109930/000012.o /tmp/go-link-722109930/000013.o /tmp/go-link-722109930/000014.o /tmp/go-link-722109930/000015.o /tmp/go-link-722109930/000016.o /tmp/go-link-722109930/000017.o /tmp/go-link-722109930/000018.o /tmp/go-link-722109930/000019.o /tmp/go-link-722109930/000020.o /tmp/go-link-722109930/000021.o /tmp/go-link-722109930/000022.o /tmp/go-link-722109930/000023.o /tmp/go-link-722109930/000024.o /tmp/go-link-722109930/000025.o /tmp/go-link-722109930/000026.o -O2 -g -O2 -g -lpthread -O2 -g -O2 -g -O2 -g -no-pie
ld: error: undefined symbol: XCloseDisplay
>>> referenced by xdisplay_c.h:13 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:13)
>>>               /tmp/go-link-722109930/000002.o:(XCloseMainDisplay)
>>> referenced by xdisplay_c.h:13 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:13)
>>>               /tmp/go-link-722109930/000002.o:(XGetMainDisplay)
>>> referenced by screen_c.h:48 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:48)
>>>               /tmp/go-link-722109930/000002.o:(sys_scale)
>>> referenced 28 more times

ld: error: undefined symbol: XOpenDisplay
>>> referenced by xdisplay_c.h:27 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:27)
>>>               /tmp/go-link-722109930/000002.o:(XGetMainDisplay)
>>> referenced by xdisplay_c.h:31 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:31)
>>>               /tmp/go-link-722109930/000002.o:(XGetMainDisplay)
>>> referenced by xdisplay_c.h:36 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/../base/xdisplay_c.h:36)
>>>               /tmp/go-link-722109930/000002.o:(XGetMainDisplay)
>>> referenced 25 more times

ld: error: undefined symbol: XResourceManagerString
>>> referenced by screen_c.h:32 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:32)
>>>               /tmp/go-link-722109930/000002.o:(sys_scale)

ld: error: undefined symbol: XrmGetStringDatabase
>>> referenced by screen_c.h:34 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:34)
>>>               /tmp/go-link-722109930/000002.o:(sys_scale)

ld: error: undefined symbol: XrmGetResource
>>> referenced by screen_c.h:39 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:39)
>>>               /tmp/go-link-722109930/000002.o:(sys_scale)

ld: error: undefined symbol: XrmDestroyDatabase
>>> referenced by screen_c.h:45 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screen_c.h:45)
>>>               /tmp/go-link-722109930/000002.o:(sys_scale)

ld: error: undefined symbol: XDefaultRootWindow
>>> referenced by screengrab_c.h:114 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screengrab_c.h:114)
>>>               /tmp/go-link-722109930/000002.o:(copyMMBitmapFromDisplayInRect)
>>> referenced by mouse_c.h:132 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:132)
>>>               /tmp/go-link-722109930/000002.o:(location)
>>> referenced by mouse_c.h:132 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:132)
>>>               /tmp/go-link-722109930/000002.o:(smoothlyMoveMouse)
>>> referenced 2 more times

ld: error: undefined symbol: XGetImage
>>> referenced by screengrab_c.h:114 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/screen/screengrab_c.h:114)
>>>               /tmp/go-link-722109930/000002.o:(copyMMBitmapFromDisplayInRect)

ld: error: undefined symbol: XWarpPointer
>>> referenced by mouse_c.h:95 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:95)
>>>               /tmp/go-link-722109930/000002.o:(moveMouse)
>>> referenced by mouse_c.h:95 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:95)
>>>               /tmp/go-link-722109930/000002.o:(dragMouse)
>>> referenced by mouse_c.h:95 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:95)
>>>               /tmp/go-link-722109930/000002.o:(smoothlyMoveMouse)
>>> referenced 2 more times

ld: error: undefined symbol: XSync
>>> referenced by mouse_c.h:97 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:97)
>>>               /tmp/go-link-722109930/000002.o:(moveMouse)
>>> referenced by mouse_c.h:97 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:97)
>>>               /tmp/go-link-722109930/000002.o:(dragMouse)
>>> referenced by mouse_c.h:155 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:155)
>>>               /tmp/go-link-722109930/000002.o:(toggleMouse)
>>> referenced 33 more times

ld: error: undefined symbol: XQueryPointer
>>> referenced by mouse_c.h:132 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:132)
>>>               /tmp/go-link-722109930/000002.o:(location)
>>> referenced by mouse_c.h:132 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:132)
>>>               /tmp/go-link-722109930/000002.o:(smoothlyMoveMouse)
>>> referenced by mouse_c.h:132 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:132)
>>>               /tmp/go-link-722109930/000002.o:(_cgo_dd183ab93a93_Cfunc_location)

ld: error: undefined symbol: XTestFakeButtonEvent
>>> referenced by mouse_c.h:154 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:154)
>>>               /tmp/go-link-722109930/000002.o:(toggleMouse)
>>> referenced by mouse_c.h:154 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:154)
>>>               /tmp/go-link-722109930/000002.o:(clickMouse)
>>> referenced by mouse_c.h:154 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:154)
>>>               /tmp/go-link-722109930/000002.o:(clickMouse)
>>> referenced 11 more times

ld: error: undefined symbol: floor
>>> referenced by mouse_c.h:296 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:296)
>>>               /tmp/go-link-722109930/000002.o:(smoothlyMoveMouse)
>>> referenced by mouse_c.h:296 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/mouse/mouse_c.h:296)
>>>               /tmp/go-link-722109930/000002.o:(smoothlyMoveMouse)

ld: error: undefined symbol: XSetErrorHandler
>>> referenced by pub.h:118 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:118)
>>>               /tmp/go-link-722109930/000002.o:(XDismissErrors)
>>> referenced by pub.h:123 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:123)
>>>               /tmp/go-link-722109930/000002.o:(XDismissErrors)
>>> referenced by pub.h:118 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:118)
>>>               /tmp/go-link-722109930/000002.o:(is_valid)
>>> referenced 23 more times

ld: error: undefined symbol: XInternAtom
>>> referenced by pub.h:156 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:156)
>>>               /tmp/go-link-722109930/000002.o:(initWindow)
>>> referenced by pub.h:157 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:157)
>>>               /tmp/go-link-722109930/000002.o:(initWindow)
>>> referenced by pub.h:158 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:158)
>>>               /tmp/go-link-722109930/000002.o:(initWindow)
>>> referenced 10 more times

ld: error: undefined symbol: XFree
>>> referenced by window.h:113 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:113)
>>>               /tmp/go-link-722109930/000002.o:(is_valid)
>>> referenced by window.h:409 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:409)
>>>               /tmp/go-link-722109930/000002.o:(get_active)
>>> referenced by pub.h:202 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:202)
>>>               /tmp/go-link-722109930/000002.o:(GetWindowProperty)
>>> referenced 7 more times

ld: error: undefined symbol: XGetInputFocus
>>> referenced by window.h:422 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:422)
>>>               /tmp/go-link-722109930/000002.o:(get_active)

ld: error: undefined symbol: XGetWindowProperty
>>> referenced by pub.h:186 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:186)
>>>               /tmp/go-link-722109930/000002.o:(GetWindowProperty)

ld: error: undefined symbol: XGetWindowAttributes
>>> referenced by pub.h:225 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:225)
>>>               /tmp/go-link-722109930/000002.o:(set_active)
>>> referenced by window.h:317 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:317)
>>>               /tmp/go-link-722109930/000002.o:(set_active)
>>> referenced by win_sys.h:113 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/win_sys.h:113)
>>>               /tmp/go-link-722109930/000002.o:(get_client)

ld: error: undefined symbol: XScreenNumberOfScreen
>>> referenced by pub.h:226 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/pub.h:226)
>>>               /tmp/go-link-722109930/000002.o:(set_active)
>>> referenced by window.h:318 (/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:318)
>>>               /tmp/go-link-722109930/000002.o:(set_active)

ld: error: too many errors emitted, stopping now (use --error-limit=0 to see all errors)
cc: error: linker command failed with exit code 1 (use -v to see invocation)

# github.com/go-vgo/robotgo
In file included from /home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/robotgo.go:48:
In file included from /home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/goWindow.h:12:
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:242:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:266:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
/home/user/go/pkg/mod/github.com/go-vgo/robotgo@v0.110.6/window/window.h:281:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions