我在代码中添加了第三方库,并在运行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'
答案 0 :(得分:7)
这些是链接错误,它告诉您链接器无法找到您正在使用的库的定义 您必须将库链接到您的项目。
gcc <your files for compilation> -lLibName
阅读 this 以便更好地理解。
答案 1 :(得分:0)
即使1)已安装readline库并且2)-lreadline已添加到gcc编译命令中,我仍然会收到错误消息。
我的问题的根本原因是库/代码的顺序:-lreadline(和其他库)应放在-o选项之前。