编译库时出现'undefined reference'错误

问题描述 投票:3回答:2

我在我的代码中添加了第三方库,并在运行make时遇到这样的错误。请帮我理解这个错误。

(.text+0x9b4): undefined reference to `snd_strerror'
/home/bet/Tent/tun/app/Common/hl/lib/libGHAL.a(gfxhal.o): In function `GFX_create_region':
/home/bet/Tent/tun/app/Common/hl/src/GHAL/gfxhal.c:1141: undefined reference to `my_key_handler'
/home/bet/Tent/tun/app/Common/hal/src/GHAL/gfxhal.c:1141: undefined reference to `create_window'
collect2: ld returned 1 exit status
make[2]: *** [all] Error 1
make[2]: Leaving directory `/home/bet/Tent/tun/app/Common/c_app'
make[1]: *** [ctv_all] Error 2
make[1]: Leaving directory `/home/bet/Tent/tun/app/Common'
c unix
2个回答
7
投票

这些是链接错误,它告诉您链接器无法找到您正在使用的库的定义。 您必须将库链接到项目。

gcc <your files for compilation> -lLibName

阅读this以便更好地理解。


0
投票

即使1)readline库已安装且2)-lreadline被添加到gcc编译命令,我仍然会收到错误。

我的问题的根本原因是库/代码的顺序:-lreadline(和其他库)应该放在-o选项之前。

© www.soinside.com 2019 - 2024. All rights reserved.