⑴ nx_type.h没有
因为MAC下 $(SYSROOT)/usr/include调取的是Mac的include (The problem is that the include file in /usr/include are for Mac OS X)
overstack参考
另一个参考
我的方法:
在 android.mk 的LOCAL_C_INCLUDES中去掉$(SYSROOT)/usr/include,
在application.mk中有APP_STL := gnustl_static。
完整文件如下
Android.mk:
[plain] view plainprint?
<code class="language-crystal hljs">LOCAL_PATH := <span class="hljs-variable">$(</span>call my-dir)
<span class="hljs-keyword">include</span> <span class="hljs-variable">$(</span>CLEAR_VARS)
LOCAL_C_INCLUDES += \
<span class="hljs-variable">${</span>NDK_DIR}/sources/cxx-stl/stlport \
<span class="hljs-variable">$(</span>JNI_H_INCLUDE)
LOCAL_SHARED_LIBRARIES += \
libutils
LOCAL_CFLAGS += -O3 -fstrict-aliasing\
-fexceptions -frtti\
-DANDROID_NDK \
-D_STLP_HAS_WCHAR_T \
-DDISABLE_IMPORTGL
LOCAL_MODULE := ddz
LOCAL_SRC_FILES := Socket32.cpp \
GB2Unicode.cpp \
DDzData.cpp \
MD5Checksum.cpp \
biostream.cpp \
TaoJNI.cpp
LOCAL_LDLIBS := -L<span class="hljs-variable">$(</span>SYSROOT)/usr/<span class="hljs-class"><span class="hljs-keyword">lib</span> -<span class="hljs-title">ldl</span> -<span class="hljs-title">llog</span></span>
LOCAL_STATIC_LIBRARIES += -llog\
-L libstlport_static.a
<span class="hljs-keyword">include</span> <span class="hljs-variable">$(</span>BUILD_SHARED_LIBRARY)
</code>
Application.mk:
APP_ABI := armeabi armeabi-v7a
APP_CPPFLAGS += -fexceptions
APP_STL := gnustl_static
APP_CPPFLAGS += -frtti
打开CSDN,阅读体验更佳
编译Android11是遇到kernel出现fatal error: ‘linux/compiler_types.h‘ file not found
1, 在Ubuntu 20.10环境下编译Android 11代码,遇到以下错误: kernel/msm-4.19/include/uapi/linux/stddef.h:2:10: fatal error: 'linux/compiler_types.h' file not found #include <linux/compiler_types.h> ^~~~~~~~~~~~~~~~~~~~~~~~ 1 warning and 1 error generated. ...
继续访问
处理Matlab Coder, Compiler can't find "tmwtypes.h"
处理找不到"tmwtypes.h" 当我们使用MATLAB生成c代码用C++项目编译运行时 可能会出现这样的编译问题: can't find "tmwtypes.h" #include "tmwtypes.h" --> 出错位置 这是因为我们工程文件里面没有这个.h头文件 而这个头文件是在 MATLAB的安装路径 extern\include\ 文件夹下 我们可以找到这个文...
继续访问
SQLite第三课 源码编译错误以及解决
1)fts2 has a designflaw and has been deprecated2)fts1 has a designflaw and has been deprecated解决方案:解析:FTS1和FTS2都有设计的缺陷,现在已经被废弃,目前已经提供了FTS3或者FTS4,这些作为全文搜索的模块,弥补了以前的FTS1的不足。如果确定不会使用到全文搜索,可以直接...
继续访问
实战-Android 系统读取Uboot环境变量实现
系统层读取Uboot环境变量、实现
继续访问
Beego安装问题:./proc_darwin.h:1:10: fatal error: 'sys/types.h' file not found
问题 在我按照官网的说明安装beego工具时,发生了以下错误 $ go get github.com/beego/bee # github.com/beego/bee/vendor/github.com/derekparker/delve/proc In file included from go/src/github.com/beego/bee/vendor/github.com/derekp...
继续访问
RT-Thread 编译I.MX RT1052时出现无法找到sys/types.h
..\..\..\components\dfs\include\dfs_fs.h(16): error: #5: cannot open source input file "sys/types.h": No such file or directory 下载RTT官方的Gitee上面的LTS版本3.1.3.之后进行编译出现此问题。发现之后尝试编译STM32的程序并没有出现此问题,粗略看一下源码是libc部分出现的,此部分和DFS的存储有直接关系,但是在网上并没有找到解决方案,感觉可能是电脑的libc库缺少
继续访问
Windows和Mac下获取(当前)进程内存占用
Windows下获取进程内存占用 #include <process.h> using namespace std; QString getProcessMemory() { QProcess p; int PIDNum = getpid(); p.start("tasklist /FI \"PID EQ " + QString::number(PIDNum) + " \""); p.waitForFinished(); QString result
继续访问
全志TinaLinux编译错误fatal error: unicode/ucnv.h: No such file or directory
今天开始正式干活了 拿到一个全志Tina的板子还有一个SDK压缩包,要求我这周(只剩一天半。。。)就要把sdk编译通过并且把板子跑起来。 还特别跟我说他们试了下这个sdk编译没法通过,会报错。。。 竟然是有坑! ———————————————————————————————————————————————————————————————— 准备工作: 拷贝解压SDK 阅读Guide手...
继续访问
icu 字符串编码探测及字符串编码转换实例
编译: g++ -o x x.cpp -licuuc -licui18n 请大家确认是否安装icu库 #include #include #include #include #include #define BUF_MAX 4096 /* * data, 传入参数, 需要探测的字符串 * len, 传入参数, 探测字符串长度 * detected
继续访问
linux内核编译报错问题code/include/uapi/linux/types.h:5:10: fatal error: asm/types.h: 没有那个文件或目录
Linux内核编译报错解决办法
继续访问
最新发布 使用SDK中交叉编译工具链clang时,找不到头文件并且找不到/usr/include、/usr/local/include文件夹
使用SDK中交叉编译工具链clang时,找不到头文件并且找不到/usr/include、/usr/local/include文件夹 可使用clang++ -E -x c++ - -v < /dev/null命令查看路径状态
继续访问
/usr/include/sys/types.h基本系统数据类型
https://blog.csdn.net/Rong_Toa/article/details/79254677
继续访问
找不到sys/types.h文件
准备下载sys/types.h
继续访问
<asm/types.h>在哪里
在linux中包含头文件时,有不少类似如下的写法:#include,但在linuxkernle的include文件夹下并没有这个文件夹,倒是有不少以asm打头的文件夹,如:asm_powerpc、asm_ppc等。 #include,是由Makefile根据.config内核配置自动生成的,而用make menuconfig 可以生成.config. 用make mrproper 可以清除.c
继续访问
热门推荐 Linux编程#include <sys/types.h>等一些头文件在哪里
在Linux下编写C程序的时候,对于头文件的包含会经常有 #include #include 等等这样的引用。 但是这些文件在哪里呢? 查找发现 一般在/usr/include这个目录下。这是gcc的默认头文件目录 对于子文件夹会在文件名前面加上子文件的名字这就是为什么会出现 sys/types.h的原因了
继续访问
android 动态库 如何编译<sys/types.h>,音视频学习之NDK交叉编译基础
我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。交叉编译交叉编译就是程序的编译环境和实际运行环境不一致,即在一个平台上生成另一个平台上的可执行代码。比如NDK,你在Mac、Win或者Linux上生成的C/C++的代码要在Android平台上运行,就需要使用到交叉编译了。通俗点说就是你的...
继续访问
JNI
Mac
Android NDK
⑵ 使用ndk开发程序需要写什么文件
NDK(Native Development Kit)“原生”也就是二进制
AndroidNDK是一套工具,允许Android应用开发者嵌入从C、C++源代码文件编译来的本地机器代码到各自的应用软件包中,并通过JNI进行访问。Android从1.5开始支持NDK.
android常用的开发方式是java封装的库,而这些库的底层实现是由C/C++实现,如媒体,图形库等
java调用这样实现就需要用JNI(Java Native Interface)
平时用的也就是google给我们封装的好的库,即便是底层实现用的不是Java,但都有统一的Java接口
而NDK的作用是“我们自己写本地代码”(C/C++),自己用JNI封装成Java接口
比如我们想做个计算,二这不是Java的强项,可以用C/C++来写实现,返回一个运算结果就行了
NDKr5已经实现了不用写一行Java代码开发程序了,只不过还是用到了虚拟机,细节被封装隐藏起来了而已
对于JNI和NDK很多Android开发初学者没有搞明白这个问题
JNI是Java调用Native机制,是Java语言自己的特性全称为 Java Native Interface,类似的还有微软.Net Framework上的p/invoke,可以让C#或Visual Basic.Net可以调用C/C++的API,所以说JNI和Android没有关系,在PC上开发Java的应用,如果运行在Windows平台使用 JNI是是经常的,比如说读写Windows的注册表。
NDK是Google公司推出的帮助Android开发者通过C/C++本地语言编写应用的开发包,包含了C/C++的头文件、库文件、说明文档和示例 代码,我们可以理解为Windows Platform SDK一样,是纯C/C++编写的,但是Android并不支持纯C/C++编写的应用,同时NDK提供的库和函数功能很有限,仅仅处理些算法效率敏感的 问题,所以Android123推荐初学者学好Java后再学习JNI。
NDK其实多了一个把.so和.apk打包的工具,这个是很重要的。
而JNI开发并没有打包,只是把.so文件放到文件系统的特定位置。
如果是做应用开发,则需要NDK工具,不然你开发的应用程序怎么给用户用呢?难道帮他重新编译文件系统?
其他至于实现,java调用本地C/C++函数,及其编写方式,我觉得JNI和NDK没有什么区别。
还有一个我个人理解,NDK开发C/C++只能能使用NDK自带的有限的头文件,而使用JNI则可以使用文件系统中带的头文件,比如utils/Log.h
而后者的资源更多,当然NDK正在努力开发中,以便支持更丰富的接口。
2.开发环境搭建:
NDK开发需要安装以下物体:
1.cygwin (需要1.7以上版本,下载地址:http://www.cygwin.com官方明确表示MSys or Cygwin 1.5 is notsupported)
在安装时候,选择make、gcc、g++、bash、
安装好后启动cygwin,运行:
看到如下所11示就ok了 (注意:GNU Make要 3.81以上版本)
3.NDK的使用
(android-ndk-r8b-windows),此文档只针对r8b版进行说明, ndk可以到官方网http://developer.android.com上进行下载
Ndk下载下来随意解压到一个目录即可(ndk的解压后存放的路径必须不能包括空格或中文,比如这种“D:\Program Files\Android-ndk-windows”在cygwin是不能识别成功的。)
如:D:\AndroidDevelop\NDK\android-ndk-r8b
配置NDK 在D:\AndroidDevelop\cygwin\home 目录下找到.bash_profile打开文件加上:
NDK=/cygdrive/d/AndroidDevelop/NDK/android-ndk-r8b
export NDK
配好后重新打开cygwin
输入:
cd $NDK
输入: $NKD/ndk-build 验证NDK是否可以使用?
在Cygwin下用nano或者vim编辑器编辑你的脚本。对于那些已经存在的脚本用dos2unix转化一下。因为Windows下的换行是<LF><CR>,Linux下是<LF>,Mac下是<CR>。
先对你的脚本跑一下 dos2unix .bash_profile 就行了。
配置NDK可以参照 http://www.linuxidc.com/Linux/2012-07/65388.htm