您尚未登录。

楼主 #1 2020-11-03 19:57:11

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,134
积分: 1086.5

链接一个库诡异链接失败,库明明存在

编译一个APP时,链接出错:
/usr/bin/ld: out/obj/keyboard.o: in function `keyboard_state_get_plain_codepoint':
/mnt/flutter/src/keyboard.c:365: undefined reference to `xkb_state_key_get_utf32'

我的链接命令:
cc -I./include -I/usr/include/libdrm -DBUILD_TEXT_INPUT_PLUGIN -DBUILD_TEST_PLUGIN -O0 -ggdb  -lgbm -ldrm -lGLESv2 -lEGL -lsystemd -linput -ludev -lxkbcommon -lrt -lpthread -ldl -lm -L/usr/lib/arm-linux-gnueabihf

明明libxkbcommon.so里有这个函数:

nm -D /usr/lib/arm-linux-gnueabihf/libxkbcommon.so

...
00014c5c T xkb_state_key_get_utf32@@V_0.5.0
..


而且不光是这个函数,所有动态链接的函数都找不到。

我是在qemu-user-static模式下编译的,不知道和这个有关吗

离线

楼主 #2 2020-11-08 00:28:47

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,134
积分: 1086.5

Re: 链接一个库诡异链接失败,库明明存在

原来-l需要放到object之后
有个文章专门解释了这个问题
https://stackoverflow.com/a/43305704/388520

结贴

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn