Problema de Compilação do OpenCV 2.3 – Refin indefinido – Ubuntu 11.10

Agradecemos antecipadamente por qualquer ajuda…

Informações do sistema: Ubuntu 11.10 (64 bits) com o OpenCV 2.3 (instalado hoje)

Eu estou tentando compilar um código muito simples no OpenCV 2.3, mas estou recebendo um erro estranho.

#include  #include  int main(){ cv::Mat image=cv::imread("img.jpg"); cv::namedWindow("My Image"); cv::imshow("My Image",image); cv::waitKey(0); return 1; } 

yetrrrrrrrrrrrr, estou recebendo essas mensagens de erro …

 -SG41:~/Desktop$ g++ `pkg-config opencv --cflags --libs` -o test_1 test_1.cpp /tmp/ccCvS1ys.o: In function `main': test_1.cpp:(.text+0x44): undefined reference to `cv::imread(std::basic_string<char, std::char_traits, std::allocator > const&, int)' test_1.cpp:(.text+0x8e): undefined reference to `cv::namedWindow(std::basic_string<char, std::char_traits, std::allocator > const&, int)' test_1.cpp:(.text+0xbc): undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' test_1.cpp:(.text+0xf0): undefined reference to `cv::imshow(std::basic_string<char, std::char_traits, std::allocator > const&, cv::_InputArray const&)' test_1.cpp:(.text+0x112): undefined reference to `cv::waitKey(int)' /tmp/ccCvS1ys.o: In function `cv::Mat::~Mat()': test_1.cpp:(.text._ZN2cv3MatD2Ev[_ZN2cv3MatD5Ev]+0x39): undefined reference to `cv::fastFree(void*)' /tmp/ccCvS1ys.o: In function `cv::Mat::release()': test_1.cpp:(.text._ZN2cv3Mat7releaseEv[cv::Mat::release()]+0x47): undefined reference to `cv::Mat::deallocate()' collect2: ld returned 1 exit status 

Eu estou supondo que pelo menos algumas das bibliotecas na saída de

 pkg-config opencv --libs 

são bibliotecas de arquivos. É incorreto colocar bibliotecas de archive antes das fonts que precisam delas ( test_1.cpp neste caso): a ordem das origens e bibliotecas na linha de link é importante .

Experimentar

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

Eu estava tendo o mesmo problema, mas eu descobri pkg-config opencv – cflags está imprimindo “-I / usr / include / opencv” em vez de “-I / usr / include / opencv2” … Talvez um bug de pacote em Ubuntu?

Eu estou usando cmake e tive problemas semelhantes.

Algo estranho está acontecendo com os arquivos de configuração do cmake.

Para mim, os problemas foram resolvidos simplesmente definindo OPENCV_FOUND como TRUE e OpenCV_FOUND como TRUE.

Também tive que configurar o OpenCV_DIR para / usr / local / share / OpenCV.

Veja também CMake error configurando opencv

A resposta do @EmployedRussian também funcionou para mim. Para aqueles que estão se perguntando como especificar esse comando no Eclipse, use este post –

https://www.eclipse.org/forums/index.php?t=msg&goto=233377&

Em vez de adicionar gtk +, use o opencv; Em vez de adicionar os novos sinalizadores a ‘Diversos sinalizadores de link’, adicione os novos sinalizadores no final após $ {INPUT} em – Projeto-> Clique com o botão direito-> Propriedades-> C / C ++ Build -> Configurações-> GCC C ++ linker- > Configurações para especialistas: padrão de linha de comando