使用catkin_make获取未定义的引用

时间:2014-05-27 15:25:43

标签: c++ undefined-reference

当我试图使用uEye相机时,我偶然发现了一个难题。我添加了

#include "ueye.h"

使用代码:

HIDS hCam = 1;

INT nRet = is_InitCamera (&hCam, NULL);

然而,当我尝试使用我的CMakeLists(http://pastebin.com/u8f4t2Fc

尝试catkin_make时,这是输出
CMakeFiles/ros_aruco.dir/src/ros_aruco.cpp.o: In function `main':
ros_aruco.cpp:(.text+0x578): undefined reference to `is_InitCamera'
collect2: ld returned 1 exit status

我应该添加什么才能使其正常工作?

3 个答案:

答案 0 :(得分:0)

我假设is_InitCamera是uEye提供的功能。要使用这些外部功能,您需要做两件事: - 通常在.h中为编译器提供函数声明 - 你做了这个部分 - 为链接器提供包含已编译函数的库 - 您引用的错误消息表明您没有执行此部分操作 如何为库提供链接器取决于您的环境,但总有一些库列表需要添加.lib,.a或其他库文件。

答案 1 :(得分:0)

${UEYE_LIBRARY}添加到CMakeLists.txt中的target_link_libraries解决了这个问题。

答案 2 :(得分:0)

您需要使用gcc <your_filename> -lueye_api -o <output_filename>进行编译。在此link上找到了它。