看板 C_and_CPP 關於我們 聯絡資訊
參考網頁:http://caffe.berkeleyvision.org/installation.html 電腦配備:Intel Xeon CPU E5-2620 @ 2.00GHz GeForce GTX 950 / PCIe 64位元 底下有用分隔線,分隔線以上在說明是說明環境的建置,如果大家覺得文字太多可以 直接從分隔線以下開始看,因為怕文字說明太少,看不懂我在問甚麼,文字太多還請見諒 目前我依照上述的網頁來設定環境,從Ubuntu guide依序安裝了 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libatlas-base-dev sudo apt-get install python-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev 再來從https://developer.nvidia.com/cuda-downloads灌CUDA7.5的檔案 也確認了套件有安裝進去 opencv 從官網下載2.4.10版,opencv設定好後有去run內部的samples/c檔 確認ok,將環境都做好設定 __________________________________________________________________________ 目前要做http://caffe.berkeleyvision.org/gathered/examples/imagenet.html 網頁的步驟,然後目前要編譯一個" convert_imageset.cpp "將它轉成執行檔 為了將影像資料轉換caffe格式 編譯是用 gcc來編譯 然後編譯成objectfile檔是沒有問題的(gcc -c convert_imageset.cpp) 覺得應該不是標頭檔的問題 然後要編譯執行檔時" gcc convert_imageset.o -o convert_imageset " , 會出現下面的錯誤 convert_imageset.cpp(.text+0x21): 未定義參考到「google::LogMessageFatal::LogMessageFatal(char const*,int)」 convert_imageset.cpp(.text_0x116): 未定義參考到「std::basic_string<char, std::char_traits<char>, std::allocator<char>」 然後google查詢後,有測試用gcc convert_imageset.o -I /usr/include -l /usr/lib -o convert_imageset 將lib檔位置引入進來,發現錯誤沒解決,想請問未定義參考 的問題,是不是因為函式庫的部分還有哪裡沒有引入到,還是因為它linker不到程式庫? 麻煩解惑了,如果問得不清楚在麻煩跟我說,謝謝 註:只有編譯一個convert_imageset.cpp檔案,然後有先將caffe-master資料夾用make 指令做編譯,確認沒有問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.125.46.75 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1453907156.A.00F.html
LPH66: 編譯 c++ 的指令請用 g++, 有一些預設設定不一樣 01/27 23:09
s501082001: 好我在測試一下用g++編譯 01/27 23:55
tinlans: -l 跟 -L 大小寫也有差 01/28 00:05
s501082001: 您好, g++ convert_imageset.cpp -L/usr/lib 01/28 00:16
s501082001: -I/usr/include/ -o convert_imageset 01/28 00:17
s501082001: 指令這樣打完之後,還是有未定義參考問題,錯誤有減少 01/28 00:21
LPH66: 加上 -lglog 01/28 00:32
LPH66: 小寫的 -l 是引入 lib, 大寫的 -L 是指定去哪找 lib 01/28 00:32
LPH66: 雖然你已經安裝了 glog 但沒下 -lglog 時 g++ 不會知道你要 01/28 00:33
s501082001: 好謝謝我試試看 01/28 00:40
s501082001: g++ convert_imageset.o -o convert_imageset -lglog 01/28 01:12
s501082001: 出現 undefined reference to symbol '_ZN6google14Fl 01/28 01:13
s501082001: ag.....' error adding symbols: DSO missing from 01/28 01:14
s501082001: command line 01/28 01:14
s501082001: 目前在找解決方式 01/28 01:14
s501082001: 上述的錯誤加上 -gflags有解決 01/28 01:38
s501082001: 謝謝您,不過有一個未定義參考是寫boost::system錯誤 01/28 01:40
s501082001: 加上-lboost後反而出現 cannot find -lboost 01/28 01:41
s501082001: 但是有確定libboost有在裡面 01/28 01:41
andy13579372: 你是用makefile還是直接打g++ 01/28 02:02
tinlans: 我看過的 boost 好像沒有包成一大包 libboost.so 的版本 01/28 02:46
Neisseria: caffe 裡面有 cmake 相關的檔案,會比較好處理 01/28 09:23
s501082001: 我是用g++執行,經過查詢有找到一個libboost_system 01/28 21:29
s501082001: 有成功將編譯檔執行出來,謝謝大家的回覆 01/28 21:30
s501082001: To Neisseria 謝謝您的建議 01/28 21:33