問題
出現以下編譯錯誤,
/media/data/lib/libbacktrace.so: undefined reference to mempool_init' /media/data/lib/libbacktrace.so: undefined reference to
mempool_free’
/media/data/lib/libbacktrace.so: undefined reference to _UIarm_full_mask' /media/data//lib/libbacktrace.so: undefined reference to
mempool_alloc’
原因
@bogon:/media/data/lib$ readelf -s libbacktrace.so | grep mempo
85: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_init
87: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_free
184: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_alloc
535: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_init
537: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_free
634: 00000000 0 NOTYPE GLOBAL DEFAULT UND mempool_alloc
@bogon:/media/data/lib$ readelf -s libunwind-arm.so | grep mempo
45: 00000000 0 FILE LOCAL DEFAULT ABS mempool.c
372: 00002104 184 FUNC LOCAL DEFAULT 9 mempool_init
373: 00002278 160 FUNC LOCAL DEFAULT 9 mempool_free
401: 000021bc 188 FUNC LOCAL DEFAULT 9 mempool_alloc
注意上面的LOCAL與GLOBAL,就是通俗意義講的static和global的變量,如果要link的函數在它所在的庫裏面是LOCAL的,那就要去改他的定義,不能是static的。
參考
https://www.cnblogs.com/foohack/p/4103074.html