linux — кросс-компиляция VisualGDB / C ++ Cubietruck = & gt; Linkererror

я пытаюсь получить opencv c ++ программа, которая работает на моем ноутбуке, на моем оборудовании — кроме того, я должен отметить, что я новичок во встроенном программировании.
Может кто-нибудь может мне помочь, потому что у меня возникли проблемы при кросс-компиляции с VisualGDB. Я использую следующую доску: Cubieboard 3 (Cubietruck— Двухъядерный A20)

Цепочка для инструментов хранится локально, поэтому не на самой плате.
Все библиотеки включены и обнаружены в Visual Studio -> взгляните на снимок экрана:

«opencv_world320d.lib«- Библиотека включает в себя все необходимые под-библиотеки — я обнаружил, что Вот

Сам код C ++:

#include "opencv2/highgui/highgui.hpp"#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char** argv)
{
Mat img(500, 1000, CV_8UC3, Scalar(0, 0, 100)); //create an image ( 3 channels, 8 bit image depth, 500 high, 1000 wide, (0, 0, 100) assigned for Blue, Green and Red plane respectively. )

if (img.empty()) //check whether the image is loaded or not
{
cout << "Error : Image cannot be loaded..!!" << endl;
//system("pause"); //wait for a key press
return -1;
}

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow"imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window

waitKey(0);  //wait infinite time for a keypress

destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow"
return 0;
}

Когда я пытаюсь построить компоновщик не удается с помощью следующего сообщения:

1>------ Erstellen gestartet: Projekt: LinuxProject2, Konfiguration: Debug VisualGDB ------
1>  Linking VisualGDB/Debug/LinuxProject2...
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::String::String(char const*)':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\cvstd.hpp(622): error : undefined reference to `cv::String::allocate(unsigned int)'
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::String::~String()':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\cvstd.hpp(664): error : undefined reference to `cv::String::deallocate()'
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::Mat::Mat(int, int, int, cv::Scalar_<double> const&)':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\mat.inl.hpp(352): error : undefined reference to `cv::Mat::operator=(cv::Scalar_<double> const&)'
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::Mat::~Mat()':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\mat.inl.hpp(592): error : undefined reference to `cv::fastFree(void*)'
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::Mat::create(int, int, int)':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\mat.inl.hpp(684): error : undefined reference to `cv::Mat::create(int, int const*, int)'
1>  VisualGDB/Debug/LinuxProject2.o: In function `cv::Mat::release()':
1>C:\OpenCV-3.2.0\opencv\build\include\opencv2\core\mat.inl.hpp(704): error : undefined reference to `cv::Mat::deallocate()'
1>  VisualGDB/Debug/LinuxProject2.o: In function `main':
1>D:\Softwareentwicklung\Projects\LinuxProject2\LinuxProject2.cpp(18): error : undefined reference to `cv::namedWindow(cv::String const&, int)'
1>D:\Softwareentwicklung\Projects\LinuxProject2\LinuxProject2.cpp(19): error : undefined reference to `cv::imshow(cv::String const&, cv::_InputArray const&)'
1>D:\Softwareentwicklung\Projects\LinuxProject2\LinuxProject2.cpp(21): error : undefined reference to `cv::waitKey(int)'
1>D:\Softwareentwicklung\Projects\LinuxProject2\LinuxProject2.cpp(23): error : undefined reference to `cv::destroyWindow(cv::String const&)'
1>collect2.exe : error : ld returned 1 exit status

Может быть, у кого-то были такие же проблемы — я действительно много искал, но не смог найти похожие проблемы.

-1

Решение

Вы только сказали инструментальную цепочку где искать при поиске библиотек («Библиотечный каталог»). Вы не сказали это который библиотеки, на которые можно ссылаться … Так что неспособность найти символы из этих отсутствующих библиотек совершенно неудивительна.

Таким образом, в дополнение к каталогу / папкам поиска библиотек, вам также необходимо заполнить поле «Имена библиотек» именами любых библиотек, на символы которых вы ссылаетесь — в данном случае, по крайней мере, opencv, Таким образом, компоновщик может ссылаться на эти библиотеки и, следовательно, разрешать эти символы.

Редактировать согласно совершенно другому вопросу

На основе этой темы:
Указание gcc напрямую связать библиотеку статически
Похоже, вы должны переместить любые статические библиотеки во флаги «Дополнительный компоновщик», так как «Библиотечные имена» генерируют -l переключатели (не -l:), которые предназначены для динамических библиотек, но вы пытаетесь связать статическую библиотеку.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]