[asterisk-users] Compile of smsq.c failed on Ubuntu Xenial (16.04LTS)

Ernie Dunbar maillist at lightspeed.ca
Wed Jul 13 19:09:05 CDT 2016


Hi everyone.

I'm trying to compile Asterisk with the smsq utility on Ubuntu 16.04 
LTS, and while most things are compiling fine, smsq fails with the 
following output:

root at test25:/usr/src/asterisk-certified-13.1-cert7/utils# make smsq
    [CC] smsq.c -> smsq.o
    [LD] smsq.o strcompat.o -> smsq
strcompat.o: In function `_ast_malloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:535: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:535: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_calloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_realloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_strdup':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:624: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:624: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_strndup':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:654: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:654: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_vasprintf':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:694: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:694: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_calloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `ast_log'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_realloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `ast_log'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:596: 
undefined reference to `ast_log'
strcompat.o: In function `_ast_calloc':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `_ast_mem_backtrace_buffer'
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/utils.h:559: 
undefined reference to `ast_log'
strcompat.o: In function `ast_str_set_va':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1014: 
undefined reference to `__ast_str_helper'
strcompat.o: In function `ast_str_append_va':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1032: 
undefined reference to `__ast_str_helper'
strcompat.o: In function `ast_str_set_va':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1014: 
undefined reference to `__ast_str_helper'
strcompat.o: In function `ast_str_append_va':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1032: 
undefined reference to `__ast_str_helper'
strcompat.o: In function `ast_str_set_substr':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1039: 
undefined reference to `__ast_str_helper2'
strcompat.o: In function `ast_str_append_substr':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1046: 
undefined reference to `__ast_str_helper2'
strcompat.o: In function `ast_str_set_escapecommas':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1053: 
undefined reference to `__ast_str_helper2'
strcompat.o: In function `ast_str_append_escapecommas':
/usr/src/asterisk-certified-13.1-cert7/include/asterisk/strings.h:1060: 
undefined reference to `__ast_str_helper2'
collect2: error: ld returned 1 exit status
../Makefile.rules:163: recipe for target 'smsq' failed
make: *** [smsq] Error 1


Years and years of installing binary packages have made my make-fu weak, 
but I've surmised that it's having trouble loading the asterisk.h 
library. To get this far, I modified smsq.h to specify the path of 
asterisk.h to say:

  #include "../include/asterisk.h"

But now I get the output we see above. Perhaps there's an easier way to 
make it find the include files it needs?



More information about the asterisk-users mailing list