sipeed / libmaix

New MaixCDK will replace this repo: https://github.com/sipeed/MaixCDK
https://github.com/sipeed/MaixCDK
MIT License
68 stars 29 forks source link

libmaix_nn.so: undefined reference to `retinaface_get_priorboxes' #21

Closed SpiceGL closed 1 year ago

SpiceGL commented 1 year ago

我在自己配置工具链路径,自己编写CMakeLists进行编译时,添加了libmaix/components/libmaix/lib/arch/v831下的libmaix_nn.so文件。在编译一个简单的hello world时,出现了如下错误: libmaix_nn.so: undefined reference to 'retinaface_get_priorboxes'
libmaix_nn.so: undefined reference to 'retinaface_decode' 根据libmaix/components/libmaix下的CMakeLists, 我注意到可能需要liblibmaix.a这个静态库,但我没有在sdk中找到它。 最后在libmaix/components/libmaix/src/decoder下找到了decoder_retinaface.c文件,将其添加到项目中一起编译解决了上述问题,但我很疑惑为什么没有将decoder_retinaface.c编译为库,而是作为一个源文件,这样在配置自己的编译环境时很容易忽略掉还缺少这个文件。

Neutree commented 1 year ago

这是一个比较糟糕的操作,在库里面用到这个函数了,但是为了把 retinaface decoder开源方便修改,用源码的方式放出来了,导致编译会有困难。之后 libmaix会进行大重构,就不会有这种问题了