Ernie Dunbar
2016-Jul-14 00:09 UTC
[asterisk-users] Compile of smsq.c failed on Ubuntu Xenial (16.04LTS)
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?
Ernie Dunbar
2016-Jul-14 18:15 UTC
[asterisk-users] Compile of smsq.c failed on Ubuntu Xenial (16.04LTS)
On 2016-07-13 17:09, Ernie Dunbar wrote:> 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?Through trial and error, I've found the solution by using Certified Asterisk v13.8-cert1 instead. It compiled without a hitch!