2013-10-16 85 views
0

我在嵌入式平臺上使用ruby1.8.7,並試圖將ruby sqlite3 gem移植到平臺上。ruby​​ LoadError for .so文件

底層sqlite3_native.so成功並安裝在目標上。 ldd表示符合所有依賴關係。但是,當我嘗試加載它時,出現LoadError(文件未找到)。其他.so庫在同一個目錄中加載成功。

#ls -l 
total 167 
lrwxrwxrwx 1 root  root    7 Oct 10 16:24 di.so -> di.so.5 
-rw-r--r-- 1 root  root   16540 Oct 10 15:29 di.so.5 
-rwxrwxrwx 1 root  root   37916 Mar 6 2012 serialport.so 
-rwxrwxrwx 1 root  root   51375 Oct 16 17:25 sqlite3_native.so 

#[path_to_ruby]/bin/ruby -r ./di -e exit 
# 
#[path_to_ruby]/bin/ruby -r ./serialport -e exit 
# 
#[path_to_ruby]/bin/ruby -r ./ssqlite3_native -e exit 
./sqlite3_native.so: File not found - ./sqlite3_native.so (LoadError) 

有沒有人有任何想法可能的原因?

親切的問候

史蒂夫

回答

0

電源的散步來清除一個人的頭部....

的問題是在圖書館的化妝過程中的鏈接,而不是在目標機器。

經由管線

LIBS = $(LIBRUBYARG_SHARED) -lsqlite3 -lrt -ldl -lcrypt -lm -lc 

除去libruby($(LIBRUBYARG_SHARED))產生在libruby.so生成文件鏈接的MKMF改變一些微妙的方式將所生成的庫(它是20個字節更小),其然後允許紅寶石可執行來定位和加載庫。

相關問題