⑴ 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