问题现象:
使用系统的工具链编译出opencv(3.1.0)的so库,由于生成的so的后缀为so.x.y.z,无法打进应用包使用。
解决措施:
当前应用的so是DevEco Studio侧打包带入的,允许应用通过 libxxx.so.x的方式提供so,如果需要同时带入两个版本的 so,real name 与 so name 名字要相同,明确到主版本号libxxx.so.x,不需要带上 .y.z;所以目前libxxx.so是能够使用的,libxxx.3.1以及libxxx.so.3.1.0需要改成libxxx.x的形式使用。然后需要在CMakeLists.txt文件中重新配置并编译。
例如:
当引用libxxx.so,libxxx.so.0等后缀类型的so库时,直接在CMakeLists.txt文件中配置即可;
当引用libxxx.so.1.2,libxxx.so.1.2.0等后缀类型的so库时,不能直接将其重命名为libxxx.so后使用,要重命名为libxxx.so.1(明确到主版本号libxxx.so.x),然后在CMakeLists.txt文件中配置使用。