簡體   English   中英

Mac OS上的Android Ndk編譯問題

[英]Android Ndk compilation issue on Mac OS

在Mac OS Ver 10.6.8上編譯本機C文件時-我遇到以下錯誤

VibhasChandra:com.htp.DrivingRange vibhasc$ /Users/vibhasc/Desktop/myeclipse/android-ndk-r8c/ndk-build 
SharedLibrary  : libndk1.so
dyld: lazy symbol binding failed: Symbol not found: _memmem**

Referenced from: /Users/vibhasc/Desktop/myeclipse/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: _memmem**

Referenced from: /Users/vibhasc/Desktop/myeclipse/android-ndk-r8c/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld
Expected in: /usr/lib/libSystem.B.dylib

clang: error: unable to execute command: Trace/BPT trap
clang: error: linker command failed due to signal (use -v to see invocation)
make: *** ****[obj/local/armeabi/libndk1.so] Error 254

我知道這在Linux機器上很容易工作,但是在Mac中,它給出了錯誤...如何解決此問題。 如何在中創建dyLib文件

一些嘗試在OS X上使用R8C的人已經報告了這一點

建議的解決方法如下:

我能夠針對此特定問題提出可能的解決方法。 我制作了一個新的共享庫,該庫實現了memmem()。 我使用DYLD_INSERT_LIBRARIES來將memmem.dylib加載到進程中,並使用DYLD_FORCE_FLAT_NAMESPACE = 1來讓ld在memmem.dylib而不是要查找它的libSystem.B.dylib內找到_memmem。 我不確定其他符號是否需要相同的處理。

恐怕沒有比這更多的細節了。

此問題已在較新版本的Android NDK版本8d(2012年12月)即android-ndk-r8d版本中得到修復。

供您參考: http : //developer.android.com/tools/sdk/ndk/index.html#Revisions

修復信息在這里:

修復了用於Mac OS X 10.6.x的NDK 8c版本的鏈接器故障,該錯誤會產生以下錯誤:

dyld:懶惰的符號綁定失敗:找不到符號:_memmem引用自:..... / arm-linux-androideabi / bin / ld預期位於:/usr/lib/libSystem.B.dylib

此問題是由於在Mac OS X 10.7上構建而導致的,該Mac OS X 10.7生成的二進制文件與Mac OS 10.6.x和NDK不兼容。

已下載並嘗試使用較新的NDK。 工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM