繁体   English   中英

在Ubuntu上为OpenFrameworks编译Basler Pylon SDK

[英]Compiling Basler Pylon SDK for OpenFrameworks on Ubuntu

我试图将Basler( https://www.baslerweb.com/ )相机与openframeworks上的一些openCV一起使用。 我以前使用Point Grey相机(及其“ FlyCapture2” SDK)没有太多麻烦。 Basler有一个称为Pylon SDK的东西,可用于Windows,Linux和Mac OS。

我可以编译Pylon自己的示例,没有任何问题,但是当我#include <pylon/PylonIncludes.h>我立即遇到了编译器问题。 我已经为我的项目适当地修改了config.make文件(我认为),因此编译器肯定会找到头文件,但是我不断收到与Pylon库中更深层内容有关的错误,特别是:

In file included from /usr/include/X11/Xlib.h:44:0,
                 from /usr/include/GL/glx.h:30,
                 from /home/stephen/of_v0.9.8_linux64_release/libs/openFrameworks/utils/ofConstants.h:184,
                 from /home/stephen/of_v0.9.8_linux64_release/libs/openFrameworks/ofMain.h:5,
                 from /home/stephen/of_v0.9.8_linux64_release/apps/myApps/canPointerOsc/src/main.cpp:1:
/opt/pylon5/include/GenApi/Types.h:130:9: error: expected identifier before numeric constant
         None,            //!< name resides in custom namespace

似乎在其他地方定义了“ None”(转换为数字常量?)。 奇怪的是,编译自己的样本时永远不会发生这种情况。 关于openFrameworks编译过程(传递给G ++的选项),是否有可能破坏他们自己的代码的这一部分:

//! Defines from which standard namespace a node name comes from
    //! \ingroup GenApi_PublicUtilities
    typedef enum _EStandardNameSpace
    {
        None,            //!< name resides in custom namespace
        GEV,             //!< name resides in GigE Vision namespace
        IIDC,            //!< name resides in 1394 IIDC namespace
        CL,              //!< name resides in camera link namespace
        USB,             //!< name resides in USB namespace
        _UndefinedStandardNameSpace  //!< Object is not yet initialized
    } EStandardNameSpace;

有什么想法吗?

看起来通过预处理器存在冲突的定义,可能埋在openFrameworks本身或其包含的依赖项之一中。 在包含Pylon Header文件之前添加以下行解决了该问题:

#undef None
#undef Status

天哪,预处理器!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM