\sdk\native\jni\include\opencv2\flann\any.h:60:63: error: use of typeid requires -frtti
时间: 2023-08-28 21:23:05 浏览: 217
错误信息指出在使用typeid时需要添加-frtti选项。 -frtti是GCC编译器的一个选项,用于启用运行时类型信息(RTTI)。RTTI允许在程序运行时确定对象的类型。要解决这个错误,您可以在编译命令中添加-frtti选项,或者在项目的编译配置中启用RTTI。这样就可以解决这个错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Android OpenCV(五十七):ORB特征点FLANN匹配](https://blog.csdn.net/poorkick/article/details/117388760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
cpp\OpenCV\sdk\native\jni\include\opencv2\flann\any.h:60:63: error: use of typeid requires -frtti
错误提示"cpp\OpenCV\sdk\native\jni\include\opencv2\flann\any.h:60:63: error: use of typeid requires -frtti"意味着在代码中使用了typeid运算符,但未启用运行时类型信息(RTTI)功能。RTTI是C++的一个特性,它允许程序在运行时确定对象的类型。要解决这个错误,您需要在编译选项中添加-frtti标志,以启用RTTI功能。
具体来说,您可以通过在编译命令或IDE设置中添加-frtti标志来解决此问题。例如,在使用GCC编译器的情况下,您可以将以下选项添加到编译命令中:
g++ -frtti your_file.cpp
如果您使用的是其他编译器或集成开发环境,请参考相关文档或设置界面以找到相应的选项。确保启用了RTTI后,重新编译您的代码应该能够解决这个错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Android OpenCV(五十七):ORB特征点FLANN匹配](https://blog.csdn.net/poorkick/article/details/117388760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [CVMFC.zip_CVMFC_MFC,opencv_opencv 滤波_site:www.pudn.com](https://download.csdn.net/download/weixin_42651748/86636820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
F:\androidProject\deeplab\app\src\main\cpp\OpenCV\sdk\native\jni\include\opencv2\flann\any.h:60:63: error: use of typeid requires -frtti
这个错误是由于缺少编译选项 `-frtti` 导致的。在使用 JNI 调用 C 的 OpenCV 库时,需要确保开启了运行时类型信息(RTTI)。你可以在 CMakeLists.txt 文件中的 `add_library` 命令中添加 `-frtti` 选项来解决这个问题。具体做法如下:
1. 打开 F:\androidProject\deeplab\app\src\main\cpp\CMakeLists.txt 文件。
2. 在 `add_library` 命令中添加 `-frtti` 选项,例如:`add_library(native-lib SHARED src/main/cpp/native-lib.cpp -frtti)`
3. 重新编译你的项目,这个错误应该就会解决了。
这个选项告诉编译器在运行时保留类型信息,以便在 JNI 调用中正确使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Android安卓java中jni使用opencv native](https://blog.csdn.net/wanggao_1990/article/details/105139586)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文