Error:(199) undefined reference to `__android_log_print'
最近在整合C和C++源文件,cpp目录下有多个子文件,然后如果是子目录出现有Android性质的元素时,就会报错。如下图所示
现在如果子目录里出现Android的LOG的日志时,就会报如下的一个错:
Error:(199) undefined reference to `__android_log_print'
但是我已经在gradle里添加了相应的语句了,还是不行。后来查阅了很多资料,也耗了整天时间,发现如果将所有文件打包成一个库,则不会报错,如果在同一个CMakeList文件里生成多个库的时候,就会报错。
解决办法有两种:
第一种就是和我前面所说的,将所有子目录的文件+根目录下所有的文件,都打进一个库里,这样就不会报错了,如下图红框所示,将video_srcs与native-lib打进同一个库。其实这个办法在实际项目中是个不错的办法,因为全部打成一个库,这样别人根据库名字及特征反编译出来就难很多了。所以推荐这个办法;
另一种就是打成多个库,即cpp目录下,根据逻辑的不同,分有多个子文件夹,然后每个子文件夹都打成一个包。如果这样的话,就必须在每个子文件夹下都对应有一个CMakeList文件才行,可以参考这位大佬的经验:
https://www.jianshu.com/p/f09dbaf72126
如上图所示,即可打包成多个库。
但实测我发现,如果这多个库有互相调用的情况下,会报一些无定义的错(但明明已经定义好的了)。这一点至今我还没弄明白,有哪位高手解决下吧= =
查阅资料时,在StackOverflow发现了一个有趣的贴子,就是使用GLOB_RECURSE可以实现根目录、子目录下所有同类的源文件自动添加,如下所示:
file(GLOB_RECURSE cpp_srcs_c "src/main/cpp/*.c")
file(GLOB_RECURSE cpp_srcs_cpp "src/main/cpp/*.cpp")
最后附上这个贴子的地址:https://stackoverflow.com/questions/45209369/android-cmakelist-add-multi-source-file
Error:(199) undefined reference to `__android_log_print'相关推荐
- error undefined reference to __android_log_print
error undefined reference to '__android_log_print 配置 Android.mk文件 输入 LOCAL_LDLIBS := -llog 打印日志库 注意: ...
- Android系统编译so库提示error undefined reference to '__android_log_print问题的解决
在系统源代码的hardware/qcom下增加psam文件夹,编译源代码要生成libpsam.so库,Android.mk内容 LOCAL_PATH := $(call my-dir) include ...
- 解决Error: undefined reference to `__android_log_print'
解决Error: undefined reference to `__android_log_print' 最近在使用Android Studio进行NDK开发时,程序本身是没有问题,但一旦添 ...
- undefined reference to android log print,undefined reference to '__android_log_print'
场景:undefined reference to `android_log_print' undefined reference to `__android_log_print' 原因:没有加入支持 ...
- undefined reference to `__android_log_print'
参考:http://blog.csdn.net/u010331406/article/details/50907714 这个问题就是导入 android studio 后遇到的,错误如下: undef ...
- 安卓 jni 开发错误 undefined reference to __android_log_print
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 jni 最近要搞安卓下串口的读写,需要用到 jni,然后遇到了这个问题,坑挺多. 串口读写参考文章:Android串口操 ...
- undefined reference to '__android_log_print'解决方案
1:在源程序中添加头文件 #include <cutils/log.h> 2:在Android.mk中添加 LOCAL_SHARED_LIBRARIES := \libutils \lib ...
- ESP32(Espressif-IDE)添加外部(.c .h)文件 (error:undefined reference to)
0x00:前言 笔记文件 用习惯了keil和iar之类的开发软件,一下子转换到ESP32是特别的不习惯,这里使用的开发环境是乐鑫官方推出的Espressif-IDE,也是刚学折腾ESP32,刚开始就遇 ...
- Android Studio 下安卓 jni 开发错误 undefined reference to AndroidBitmap_getInfo
博客: 安卓之家 微博: 追风917 CSDN: 蒋朋的家 简书: 追风917 又掉坑里了 今天开发 uvc,又遇到了坑: 和之前的这个坑类似:Android Studio 下安卓 jni 开发错误 ...
- android jni不适用ndk,Android NDK编译之undefined reference to 'JNI_CreateJavaVM'
利用Android NDK编译动态库,在C文件中调用了两个JNI函数:JNI_GetDefaultJavaVMInitArgs和JNI_CreateJavaVM.编译的时候始终报以下错误: XXX: ...
最新文章
- python 不得不知的第三方库以及常用安装包
- 获 3.8 亿用户青睐,中国电信翼支付如何数据化运营?
- 青岛农业大学第九届ACM程序设计竞赛
- linux如何退出python编辑器_centos linux 终端已经调成python3,怎么安装python3的IDLE编译器,...
- Laravel添加验证场景提高针对性质的验证
- 电脑软件:巧用微软小工具解决日常问题!
- 【数据结构与算法】循环队列和链队列的比较
- OpenShift 4 之通过直接访问内部的 Image Registry 操作容器镜像
- idea package放在什么位置_NBA现役球员大排名,你会把20岁的东契奇放在什么位置?...
- 浅析C#中new、override、virtual关键字的区别
- 【系统分析师之路】2019年上系统分析师综合知识真题
- 魏俊妮《非人力资源的人力资源管理技术提升》课程大纲
- ESXI7.0下载地址
- mac 谷歌浏览器 跨域访问
- 学mysql后的收获_数据库课程学习的收获和心得体会
- mysql表字段一定要写英文吗_关于数据库列名是否必须是英文的?
- 操作系统中的虚拟内存详解
- apollo github的说明介绍
- 【绝地求生:刺激战场】雪地新地图抢先了解
- 使用CrawlSpider爬取糗事百科段子