it-swarm-id.com

OpenCV 2.3 Masalah Kompilasi - Refence Tidak Terdefinisi - Ubuntu 11.10

Terima kasih sebelumnya atas bantuannya ...

Info Sistem: Ubuntu 11.10 (64 bit) dengan OpenCV 2.3 (diinstal hari ini)

Saya mencoba untuk mengkompilasi beberapa kode yang sangat sederhana di OpenCV 2.3 tetapi saya mendapatkan kesalahan aneh.

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

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

namun, saya menerima pesan kesalahan ini ...

-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<char>, std::allocator<char> > const&, int)'
test_1.cpp:(.text+0x8e): undefined reference to `cv::namedWindow(std::basic_string<char, std::char_traits<char>, std::allocator<char> > 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<char>, std::allocator<char> > 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
37
user1002414

Saya menduga bahwa setidaknya beberapa perpustakaan di output dari

pkg-config opencv --libs

adalah perpustakaan arsip. Tidak benar menempatkan perpustakaan arsip di atas sumber yang membutuhkannya (test_1.cpp dalam kasus ini): urutan sumber dan perpustakaan di baris tautan hal .

Mencoba

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

Saya mengalami masalah yang sama, tetapi saya menemukan pkg-config opencv --cflags sedang mencetak "-I/usr/include/opencv" bukan "-I/usr/include/opencv2" ... Mungkin paket bug di Ubuntu? 

2
dividebyzero

Saya menggunakan cmake dan memiliki masalah serupa.

Sesuatu yang aneh sedang terjadi dengan file konfigurasi cmake.

Bagi saya masalah diselesaikan dengan hanya mengatur OPENCV_FOUND ke TRUE dan OpenCV_FOUND ke TRUE.

Juga saya harus mengatur OpenCV_DIR ke/usr/local/share/OpenCV.

Lihat juga Kesalahan CMake mengonfigurasi OpenCV

0
Tim Kuipers

@EmployedRussia jawaban bekerja untuk saya juga. Bagi mereka yang bertanya-tanya bagaimana cara menentukan perintah ini di Eclipse, gunakan posting ini - 

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

Alih-alih menambahkan gtk +, gunakan opencv; Alih-alih menambahkan flag baru ke 'Miscellaneous linker flags', tambahkan flag baru di akhir setelah $ {INPUT} di - Project-> Klik kanan-> Properties- > C/C++ Build -> Pengaturan-> GCC C++ linker-> Pengaturan Pakar: pola baris perintah

0
IEEE754