简体   繁体   中英

'undefined reference' errors when compiling against library

I added a third party library to my code and is getting errors like this when running make . Please help me understand this error.

(.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'

Those are Linking errors, which tell you the linker cannot find definitions for the library you are using.
You will have to link the library to your project.

gcc <your files for compilation> -lLibName

Read this for better understanding.

I still get the error even if

  1. readline library is installed and
  2. -lreadline is added to gcc compiling command.

The root cause of my issue is the order of the libraries/code: -lreadline (and other libraries) should be put right before -o options.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM