我無法使用帶有$ NDK /編譯/工具/ make-standalone-toolchain.sh腳本創建一個獨立的NDK工具鏈建設協議緩衝區爲Android。我遇到的問題是這樣的:建設協議緩衝器,具有獨立NDK工具鏈
libtool: link: g++ -Wall -Wwrite-strings -Woverloaded-virtual -Wno-sign-compare -O2 -g -DNDEBUG -o protoc main.o ./.libs/libprotobuf.a ./.libs/libprotoc.a /home/sizeak/AudioFingerprinting/ProtoBuf/jni/src/.libs/libprotobuf.a -lz -lc
./.libs/libprotoc.a(plugin.pb.o): In function `GoogleOnceInit':
/home/sizeak/AudioFingerprinting/ProtoBuf/jni/src/./google/protobuf/stubs/once.h:115: undefined reference to `pthread_once'
這似乎暗示並行線程庫丟失,但是SYSROOT由NDK腳本創建這樣應該包含一切,對不對?我在某處讀到,在使用獨立工具鏈時,沒有必要明確鏈接pthread。我使用的配置命令是:
./configure --host=arm-eabi --with-sysroot=$SYSROOT CC=$CC --enable-cross-compile --with-protoc=protoc LIBS="-lc"
其中環境變量設置爲指向由腳本創建的sysroot。
我在網上看到過許多網頁上的這個問題,但似乎沒有人發佈過答案。誰能幫忙?
是ProtoBuf你的Android應用程序,你想創建一個共享庫,並在這個Android App.Have中使用它,你提到了android.mk文件中的pthread選項? – Raulp 2012-04-28 19:21:15
ProtoBuf是一個試圖用ndk-build構建庫的項目,在我發現獨立工具鏈選項之前。 – 2012-04-28 20:09:16