NDK工程使用ncnn vulkan包提示需要frtti、fexceptions

这两天弄一个工程,是在安卓端部署ncnn with vulkan的项目

一般来说都会用到 try catch 或者 有些库需要用到typeid

一般的方法是在build.gradle里面加上

        externalNativeBuild {
            cmake {
                cppFlags '-std=c++11 -frtti -fexceptions'
                abiFilters "armeabi-v7a", "arm64-v8a"
            }
        }

这个网上很多我就不具体说了,但是我发现我的工程即使加了这个也还是用不了,一开始以为是自己的设置啥的有问题,后来发现只要cmake里加了ncnn就会出这个问题,因此我就认真的读了ncnn里的cmake文件一般路径为:

ncnn-xxxxxx-android-vulkan\arm64-v8a\lib\cmake\ncnn\ncnn.cmake

于是在大概57行的位置我发现了这个:

set_target_properties(ncnn PROPERTIES
  INTERFACE_COMPILE_OPTIONS "-fno-rtti;-fno-exceptions"
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/ncnn"
  INTERFACE_LINK_LIBRARIES "-fopenmp;-static-openmp;Threads::Threads;Vulkan::Vulkan;\$<LINK_ONLY:glslang>;\$<LINK_ONLY:SPIRV>;android;jnigraphics;log"
  INTERFACE_POSITION_INDEPENDENT_CODE "ON"
)

好的罪魁祸首就是他了,只要把-fno-rtti;-fno-exceptions 改成 -frtti;-fexceptions就可以了。

不过我得声明一下我也是个小白哈,具体这么改了之后对ncnn的运行性能有什么影响我没有测,如果有大佬知道更好的解决办法希望能告诉我一下,我实在是没有别的办法了

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王小贝爱吃肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值