2014-04-10 44 views
1

我試圖在Rust中爲一個課程項目製作一個基本的圖像處理程序,但是我很難搞清楚如何開始。我研究過使用rust-png,但我很難理解如何將它用作外部庫,因爲我不確定是否正確鏈接文件。當我編譯lib.rs來創建箱子時,我得到這個錯誤。Rust中的圖像處理庫

error: linking with `cc` failed: exit code: 1 
note: cc arguments: '-m64' '-L/usr/local/lib/rustlib/x86_64-apple-darwin/lib' '-o' 'main' 'main.o' '-lmorestack' '-nodefaultlibs' '/usr/local/lib/rustlib/x86_64-apple-darwin/lib/libnative-83574243-0.11-pre.rlib' '/usr/local/lib/rustlib/x86_64-apple-darwin/lib/libstd-aad93cea-0.11-pre.rlib' '/usr/local/lib/rustlib/x86_64-apple-darwin/lib/liblibc-8f65d5a8-0.10-pre.rlib' '-L/Users/brianuosseph/Desktop/Course_Work/Spring_2014/CS_4414/final_project/.rust' '-L/Users/brianuosseph/Desktop/Course_Work/Spring_2014/CS_4414/final_project' '-lpng' '-lz' '-lshim' '-lSystem' '-lc' '-lm' '-Wl,-rpath,@loader_path/../../../../../../../usr/local/lib/rustlib/x86_64-apple-darwin/lib' '-Wl,-rpath,/usr/local/lib/rustlib/x86_64-apple-darwin/lib' '-lcompiler-rt' 
note: ld: warning: directory not found for option '-L/Users/brianuosseph/Desktop/Course_Work/Spring_2014/CS_4414/final_project/.rust' 
ld: library not found for -lshim 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

error: aborting due to previous error 

我目前正在Rust的0.11-pre-nightly版本上運行。

對於這個項目,我只是從使用libpng包裝開始,但是在將來我寧願從頭開始爲Rust創建我自己的PNG庫。但是,我根本不知道從哪裏開始,或者現有的Rust圖像庫是PNG,GIF還是JPEG。知道嗎?

+0

看起來,爲了編譯'防鏽png'你必須先運行'./configure',然後運行'make'。你的問題中的錯誤將會消失('shim'庫似乎是一個非常簡單的庫,由同一個庫中'shim.c'文件編譯而來)。 –

+0

嘗試編譯'shim.c'或運行'make'時遇到同樣的錯誤 找不到架構x86_64的ld:symbol(s) clang:error:linker命令失敗,退出代碼1(使用-v to請參閱調用) 任何方式我可以得到所需的符號? – riban

+0

這很奇怪。我只是'git clone'd庫,運行'./configure',編輯'Makefile'來設置Rust編譯器的路徑並執行'make'。一切都很好編譯,我有'.rlib'和'.so'庫。也許該庫僅適用於Mac OS X. –

回答