Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未定义对“imp”ZN11C1394Camera10InitCameraEi和x27的引用;在月食上有1394cmu_C++_Eclipse_Undefined Reference - Fatal编程技术网

C++ 未定义对“imp”ZN11C1394Camera10InitCameraEi和x27的引用;在月食上有1394cmu

C++ 未定义对“imp”ZN11C1394Camera10InitCameraEi和x27的引用;在月食上有1394cmu,c++,eclipse,undefined-reference,C++,Eclipse,Undefined Reference,我使用这个程序和Opencv和1394cmu从firewire中获取视频流。 但是当我编译这个项目时,我得到了一些错误。这些库在eclipse中被正确导入,事实上,可以看到对象的方法,两个ddl也被正确导入,所以我不知道问题出在哪里 undefined reference to `_imp___ZN11C1394Camera10InitCameraEi' undefined reference to `_imp___ZN11C1394Camera12AcquireImageEv' und

我使用这个程序和Opencv和1394cmu从firewire中获取视频流。 但是当我编译这个项目时,我得到了一些错误。这些库在eclipse中被正确导入,事实上,可以看到对象的方法,两个ddl也被正确导入,所以我不知道问题出在哪里

undefined reference to `_imp___ZN11C1394Camera10InitCameraEi'   
undefined reference to `_imp___ZN11C1394Camera12AcquireImageEv' 
undefined reference to `_imp___ZN11C1394Camera12SetVideoModeEm' 
undefined reference to `_imp___ZN11C1394Camera14SetVideoFormatEm'   
undefined reference to `_imp___ZN11C1394Camera16StopImageCaptureEv' 
undefined reference to `_imp___ZN11C1394Camera17SetVideoFrameRateEm'    
undefined reference to `_imp___ZN11C1394Camera21StartImageAcquisitionEv'
undefined reference to `_imp___ZN11C1394Camera6getRGBEPhm'  
undefined reference to `_imp___ZN11C1394Camera9CheckLinkEv' 
undefined reference to `_imp___ZN11C1394CameraC1Ev' 



 #include "1394Camera.h"

// adjust parameters to your needs
#define CAM_RES_WIDTH 640
#define CAM_RES_HEIGHT 480
#define CAM_RES_CHANNELS 3

//camera object of the 1394CMU driver
C1394Camera Camera;


 int main( int argc, char** argv )
{
    // several checks if camera is connected and can be initialized as well as setting
    // of camera properties and starting of image aquisition
    if(Camera.CheckLink() != CAM_SUCCESS)
    {
            printf("\nNo Link.");
            return -1;
    }
    if(Camera.InitCamera() != CAM_SUCCESS)
    {
            printf("\nInitialization failed.");
            return -1;
    }
    if(Camera.SetVideoFormat(0) != CAM_SUCCESS)
    {
            printf("\nCould not set video format.");
            return -1;
    }
    if(Camera.SetVideoMode(5) != CAM_SUCCESS)
    {
            printf("\nCould not set video mode.");
            return -1;
    }
    if(Camera.SetVideoFrameRate(4) != CAM_SUCCESS)
    {
            printf("\nCould not set frame rate.");
            return -1;
    }
    if(Camera.StartImageAcquisition() != CAM_SUCCESS)
    {
            printf("\nCould not start image acquisation.");
            return -1;
    }

  //give camera a chance to inititalize and adjust before starting frame aquisition
    cvWaitKey(1000); 

    cvNamedWindow( "Source",1);     

    IplImage *Image = cvCreateImage( cvSize(CAM_RES_WIDTH, CAM_RES_HEIGHT), 8,      CAM_RES_CHANNELS);

  //aquire frame from camera
    if(Camera.AcquireImage() != CAM_SUCCESS)
    {       
            printf("\nCould not acquire image.");
            return 1;
    }

  //read frame from internal CMU1394 storage to buffer
    Camera01.getRGB((unsigned char*)(Image->imageData), (CAM_RES_WIDTH*CAM_RES_HEIGHT*3));

    cvShowImage("Source", Image);
    cvWaitKey(0);

    Camera.StopImageCapture();
    cvReleaseImage(&Image);
    cvDestroyWindow("Source");
}

如何编译和链接程序?您可能在链接时忘记了一些库,例如
-lopencv
之类的东西。库的顺序很重要。

weel我有(按此顺序)#include#include#include我正在使用eclipse,因此导入库时直接在eclipse上设置编译器的路径。在这个项目中,我可以看到我导入的库,所以我认为它们是好的。我可能在考虑一些.dll,但正如我在q394cmu中告诉你的,项目中只有2个dll。你应该知道Eclispe执行了哪些编译和链接命令,然后你应该修复它们。我不知道。但是有一种方法,这个问题变得与Eclipse有关