【OpenCV】樹莓派和Ubuntu遇到的OpenCV運(yùn)行問題

正文之前

今天終于可以暢快的玩玩?zhèn)髡f中的OpenCV了。。。美滋滋?。?/p>

但是??!

此處敲桌!!我太天真了!人人談之色變的OpenCV怎么可能這么容易被我得手呢???!不存在的!!

正文

實(shí)戰(zhàn)中遇到了幾個問題,主要是因為昨晚用的是python,今天用的我大C++,所以有點(diǎn)差別,昨晚沒發(fā)現(xiàn)!~~今天一弄,問題就出來了。。。

我的OpenCV學(xué)習(xí)筆記(11):啟動攝像頭

首先,是編譯不通過~ 你看,別人家的代碼毛問題都沒有??!但是只要我按照常規(guī)手法去操作,不變的代碼,千樣的GG~~~?。。。。。。?/p>

別人家的代碼
別人家的效果

然而我的呢?!??!我的呢??。?!

呵呵噠

全線飄紅?。。?!慘不忍睹啊?。。∥乙欢ㄒ褕箦e給你們看?。?/p>

/tmp/ccFjv3cQ.o:在函數(shù)‘main’中:
opencvtest1.cpp:(.text+0x2b):對‘cv::VideoCapture::VideoCapture(int)’未定義的引用
opencvtest1.cpp:(.text+0x3a):對‘cv::VideoCapture::isOpened() const’未定義的引用
opencvtest1.cpp:(.text+0x81):對‘cv::VideoCapture::operator>>(cv::Mat&)’未定義的引用
opencvtest1.cpp:(.text+0xe9):對‘cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int)’未定義的引用
opencvtest1.cpp:(.text+0x190):對‘cv::GaussianBlur(cv::_InputArray const&, cv::_OutputArray const&, cv::Size_<int>, double, double, int)’未定義的引用
opencvtest1.cpp:(.text+0x20a):對‘cv::Canny(cv::_InputArray const&, cv::_OutputArray const&, double, double, int, bool)’未定義的引用
opencvtest1.cpp:(.text+0x26d):對‘cv::imshow(cv::String const&, cv::_InputArray const&)’未定義的引用
opencvtest1.cpp:(.text+0x295):對‘cv::waitKey(int)’未定義的引用
opencvtest1.cpp:(.text+0x2dd):對‘cv::VideoCapture::~VideoCapture()’未定義的引用
opencvtest1.cpp:(.text+0x3ba):對‘cv::VideoCapture::~VideoCapture()’未定義的引用
/tmp/ccFjv3cQ.o:在函數(shù)‘cv::String::String(char const*)’中:
opencvtest1.cpp:(.text._ZN2cv6StringC2EPKc[_ZN2cv6StringC5EPKc]+0x54):對‘cv::String::allocate(unsigned long)’未定義的引用
/tmp/ccFjv3cQ.o:在函數(shù)‘cv::String::~String()’中:
opencvtest1.cpp:(.text._ZN2cv6StringD2Ev[_ZN2cv6StringD5Ev]+0x14):對‘cv::String::deallocate()’未定義的引用
/tmp/ccFjv3cQ.o:在函數(shù)‘cv::Mat::~Mat()’中:
opencvtest1.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39):對‘cv::fastFree(void*)’未定義的引用
/tmp/ccFjv3cQ.o:在函數(shù)‘cv::Mat::release()’中:
opencvtest1.cpp:(.text._ZN2cv3Mat7releaseEv[_ZN2cv3Mat7releaseEv]+0x4b):對‘cv::Mat::deallocate()’未定義的引用
collect2: error: ld returned 1 exit status

去他大爺?shù)模。。∵€能好好玩耍嗎???然后,千方百計之下。??偹氵€是找到了解決方案了??!

我找了一篇博客,然后內(nèi)容如下:


我一直以為是C++11或者g++版本的原因,看到:

g++ `pkg-config --cflags --libs opencv` lena.cpp -o lena

這樣會編譯失敗,而

g++ lena.cpp `pkg-config --cflags --libs opencv` -o lena

這樣就會成功。試了一下果然如此。真是奇怪。


我就一點(diǎn)都不奇怪。。。。有啥好奇怪的??不變的系統(tǒng),流水的bug,習(xí)慣就好。。why it don't work?? It work!! but Why?千年疑問,別指望自己能回答,乖乖的照就好??!

一點(diǎn)就通,按照一些大佬說的,貌似是因為C++要指定動態(tài)庫鏈接???opencv這個小bitch真是讓人不省心?。?!

到了一這一步,在樹莓派上就可以愉快的跑起來了。。

但是在ubuntu上。。呵呵,年輕?。〕晕乙挥沚ug?。?!

error while loading shared libraries: libopencv_highgui.so.3.4: cannot open
盜圖,我的已經(jīng)解決了~

借鑒博客來源: OpenCV編譯遇到的一個常見錯誤-./bin: error while loading shared libraries: libopencv_highgui.so.3.2: cannot open

他的分了很多步驟,但是我覺得沒必要。。所以給你放福利。。。一條命令搞定它??!當(dāng)然,要知道具體情節(jié),還是去那個博客看啊哈!

sudo echo "include /usr/local/lib" >> /etc/ld.so.conf && sudo ldconfig && sudo echo "PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig " >> /etc/bash.bashrc  &&  echo "export PKG_CONFIG_PATH  " >> /etc/bash.bashrc &&  source /etc/bash.bashrc

這一句就是他整個博客的濃縮,盡管拿去,中間會要你輸入密碼。。不過應(yīng)該就一次了??!

然后你就發(fā)現(xiàn),ubuntu也可以跑攝像頭了!!娃哈哈!!

有點(diǎn)驚悚哈。。別介意~~ 我溜了

正文之后

唉。我初中班主任的兒子老是不愛學(xué)習(xí)。。被他媽媽一罵就鬧氣,要中考了還不學(xué)習(xí)。。。我在這兒苦口婆心的勸。。真的是。。頭疼。。

現(xiàn)在的小孩怎么就沒一點(diǎn)危機(jī)感呢?未來這個世界是要“人吃人的”,不趁著社會給你相對公平發(fā)展的機(jī)會去擠壓更多人的生存空間,就這么甘做社會的螺絲釘???真是,幼稚!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容