我一直试图在Linux(在jetson TX2上)上安装flycapture2库。但这确实是一个Linux问题,我不认为这是特定于平台或程序的。我的目标是能够包含文件并进行编译,但此刻我得到的是对类型链接器错误的未定义引用。
我正在使用CMake进行编译。在我的cmakelist中,我将/ usr / include / flycapture添加为包含目录。
我已经完成以下尝试安装:
-我运行的程序最初是在下载时运行的,一切都很好。
-我将flycapture的/ include目录复制到/ usr / include / flycapture
-(这似乎是错误的)我将flycapture的/ lib目录复制到/ usr / lib。这包括.so和.a文件。
就是这样。对我来说似乎错了,但我不知道为什么。
我复制到/ usr / include / flycapture的文件:
nvidia@tegra-ubuntu:/usr/include/flycapture$ ls
BusManager.h Camera.h FlyCapture2GUI.h FlyCapture2VideoDefs.h Image.h Utilities.h
C Error.h FlyCapture2.h FlyCapture2Video.h ImageStatistics.h
CameraBase.h FlyCapture2Defs.h FlyCapture2Platform.h GigECamera.h TopologyNode.h
nvidia@tegra-ubuntu:/usr/include/flycapture$
和/ usr / lib(仅显示相关文件):
libflycapture-cd_static.a libflycapturegui-cd_static.a libflycapturevideo-cd_static.a
libflycapture-c.so libflycapturegui-c.so libflycapturevideo-c.so
libflycapture-c.so.2 libflycapturegui-c.so.2 libflycapturevideo-c.so.2
libflycapture-c.so.2.13.3.31 libflycapturegui-c.so.2.13.3.31 libflycapturevideo-c.so.2.13.3.31
libflycapture-c_static.a libflycapturegui-c_static.a libflycapturevideo-c_static.a
我这样包含文件,并且此代码会导致多个错误。我知道由于名称空间的原因还不清楚,但是所有fc2类型的变量和函数都不会链接:
#include "flycapture/FlyCapture2.h"
#include <iomanip>
#include <iostream>
#include <sstream>
using namespace FlyCapture2;
using namespace std;
void PrintBuildInfo()
{
FC2Version fc2Version;
Utilities::GetLibraryVersion(&fc2Version);
ostringstream version;
version << "FlyCapture2 library version: " << fc2Version.major << "."
<< fc2Version.minor << "." << fc2Version.type << "."
<< fc2Version.build;
cout << version.str() << endl;
ostringstream timeStamp;
timeStamp << "Application build date: " << __DATE__ << " " << __TIME__;
cout << timeStamp.str() << endl << endl;
}
这只是我得到的错误的一小部分,但实际上它们只是一般的链接器错误,告诉我该库未正确链接:
GigEGrabEx.cpp:(.text+0x22bc): undefined reference to `FlyCapture2::Error::~Error()'
GigEGrabEx.cpp:(.text+0x22cc): undefined reference to `FlyCapture2::Error::~Error()'
GigEGrabEx.cpp:(.text+0x22dc): undefined reference to `FlyCapture2::Error::~Error()'
感谢您的帮助!
-seth