cgo-在GO中链接动态库时出现“未定义引用”错误

时间:2019-04-27 12:27:31

标签: go linker-errors cgo

我在/opt/xx/lib64中有一个C ++共享库。标头在C中。 在我的执行代码中,我使用CPPFLAGS / CFLAGS和LDFLAGS包括适当的头和链接器选项。在构建过程中,仍然出现“未定义引用”错误。

import (
    //#cgo LDFLAGS: -L/opt/xxx/lib64/ -lsessionmgmt
    //#cgo CPPFLAGS: -I/opt/xxx/include/
    //#include <stdlib.h>
    //#include <sessionMgmt/sessionMgmt.h>
    "C"
    "unsafe"
)
/tmp/go-build609413262/b163/_x002.o: In function `_cgo_e38947506e9d_Cfunc_um_get_lastlogin_info':
/tmp/go-build/cgo-gcc-prolog:52: undefined reference to `um_get_lastlogin_info'
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:48: vet] Error 2

库位于正确的路径中,并且确实包含必需的方法。 不知道为什么会出错。

$ grep um_get_lastlogin_info /opt/xxx/lib64/libsessionmgmt.so Binary file /opt/xxx/lib64/libsessionmgmt.so matches

还尝试将pkg-config与cgo一起使用。仍然出现相同的链接错误。

0 个答案:

没有答案