在eclipse上运行openCV 2.4.11(Ubuntu)

时间:2015-08-13 14:27:33

标签: c++ eclipse opencv ubuntu undefined-reference

我是来自德国的学生,对于我的学士论文,我需要运行一个程序,然后对它给出的输出做一些事情。但是,程序是使用openCV编写的,我在PC上配置openCV时遇到了很多麻烦。我已经遵循了很多教程,并且我的PC上安装了openCV 2.4.11(我认为)。 现在我尝试使用以下教程中的以下代码测试我的设置:

#include <cv.h>
#include <highgui.h>
using namespace cv;
int main( int argc, char** argv ) {
    Mat image;
    image = imread( argv[1], 1 );
    if( argc != 2 || !image.data ) {
        printf( "No image data \n" );
        return -1;
    }
    namedWindow( "Display Image", CV_WINDOW_AUTOSIZE );
    imshow( "Display Image", image );
    waitKey(0);
    return 0;
}

我正确地告诉eclipse我的包含文件和lib文件是哪个以及包括哪些文件。我没有在代码中得到任何错误。 但是当我尝试构建我的项目时,它将无法工作。相反,我得到了无穷无尽的错误列表,导致无法构建它。

错误读起来(就像它们的0.1%):

templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1158): Nicht definierter Verweis auf `cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1c14): Nicht definierter Verweis auf `cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1cbd): Nicht definierter Verweis auf `cv::mulSpectrums(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&, int, bool)'
templmatch.cpp:(.text._ZN2cv9crossCorrERKNS_3MatES2_RS0_NS_5Size_IiEEiNS_6Point_IiEEdi+0x1cfa): Nicht definierter Verweis auf `cv::dft(cv::_InputArray const&, cv::_OutputArray const&, int, int)'
collect2: error: ld returned 1 exit status
make: *** [DisplayImage2] Error 1

16:04:37 Build Finished (took 660ms)

我用Google搜索了“Nicht definierter Verweis”部分,发现它是“未定义参考”的德语版本。然而,那里提供的解决方案并没有解决我的问题。之前我在Windows和其他计算机上遇到过同样的问题,但人们告诉我这是Window的错,我应该使用ubuntu,所有问题都将消失。

如果之前已经回答过,我很抱歉,我错过了。不过我真的很感激任何帮助:)

2 个答案:

答案 0 :(得分:0)

抱歉,没有足够的声誉发表评论,所以回答:

您的未定义引用是引用未在代码中调用的函数(如<?xml version="1.0"?> <configuration> <appSettings> <!--Settings--> <add key="url" value="http://vmcarekey.com"/> <add key="user" value="admin"/> </appSettings> </configuration> )。您实际上可能正在构建与您的想法不同的东西。

答案 1 :(得分:0)

如果它有用,这里是一个骨架CMakeLists.txt文件,它将编译一个opencv c ++文件:

cmake_minimum_required(VERSION 2.8)
PROJECT(yourFileName)
FIND_PACKAGE(OpenCV REQUIRED)

ADD_EXECUTABLE(${PROJECT_NAME} yourfile.cxx)

TARGET_LINK_LIBRARIES(
${PROJECT_NAME}
${OpenCV_LIBS})

ADD_DEFINITIONS(-std=c++11)

如果你通过cmake直接运行这个gui或command然后它应该工作,然后至少它会运行所以你可以稍后解决eclipse。