当前位置: 首页 > 工具软件 > mempool > 使用案例 >

奇怪的undefined reference to `mempool_free'

漆雕誉
2023-12-01

问题

出现以下编译错误,

/media/data/lib/libbacktrace.so: undefined reference to mempool_init' /media/data/lib/libbacktrace.so: undefined reference tomempool_free’
/media/data/lib/libbacktrace.so: undefined reference to _UIarm_full_mask' /media/data//lib/libbacktrace.so: undefined reference tomempool_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

 类似资料: