2012-06-13 53 views
1

連接-lboost_thread到我的谷歌原生客戶端可執行文件(pepper_19)當我收到此錯誤:boost_thread不連接NaCl計

nacl_sdk/pepper_19 /工具鏈/ mac_x86_glibc/x86_64的-氯化鈉/ usr/lib目錄/ libboost_thread.a :無法讀取符號:存檔沒有索引;運行ranlib的根據在naclports此處說明添加一個

我編升壓:http://code.google.com/p/naclports/wiki/InstallingSDL(除使用升壓庫目錄,而不是SDL ......我也用這個同樣的過程正確編譯氯化鈉zlib庫)

cd naclports/src/libraries/boost_1_47_0 

export NACL_PACKAGES_BITSIZE=32; ./nacl-boost_1_47_0.sh 
export NACL_PACKAGES_BITSIZE=64; ./nacl-boost_1_47_0.sh 

這會生成libboost_thread.a文件並將它們放在我的NACL安裝的/ usr/lib目錄中。我想也許不知怎的,我錯誤地建了一個錯誤類型的圖書館與NaCl連接。有沒有辦法檢查這個和/或修復它?

我想:

cd naclports/src/out/repository-x86_64/boost_1_47_0/bin.v2/libs/thread/build/darwin-4.2.1/release/link-static/threading-multi 

nm libboost_thread.a 

,這產生了:

libboost_thread.a(thread.o): 
0000000000052d08 s EH_frame0 
000000000004f50c s GCC_except_table100 
000000000004f534 s GCC_except_table101 
000000000004f574 s GCC_except_table102 
000000000004f5c0 s GCC_except_table103 
000000000004f600 s GCC_except_table104 
000000000004f64c s GCC_except_table105 
000000000004f68c s GCC_except_table106 
000000000004f6d8 s GCC_except_table107 
. 
. 
. 
. 

等等,等等。 但是後來我跑:

nacl_sdk/pepper_19 /工具鏈/ mac_x86_glibc /斌/ x86_64-nacl-nm libboost_thread.a

得到:

__.SYMDEF SORTED: File format not recognized 
nacl_sdk/pepper_19/toolchain/mac_x86_glibc/bin/x86_64-nacl-nm: thread.o: File format not recognized 
nacl_sdk/pepper_19/toolchain/mac_x86_glibc/bin/x86_64-nacl-nm: once.o: File format not recognized 

最後。我跑:

file pthread/thread.o 
pthread/thread.o: Mach-O 64-bit object x86_64 

但是在一個zlib的對象文件的結果相同的命令:

ELF 64-bit LSB relocatable, x86-64, version 1, not stripped 

我將構建一個正確的交叉編譯的NaCl libboost_thread.a

欣賞的意見謝謝。

回答

0

NaCl端口的一些庫只能在linux上構建。所以你必須要麼找到boost爲什麼決定使用系統ar而不是x86_64-nacl-ar,或者在linux下安裝VM,他們是相同的。