2016-11-15 11 views
1

私は、別々のプロジェクトからpylon5 C++ライブラリを成功裏に呼び出すことを試みました。Raspberry PiのBasler GigEカメラpylon5 C++ライブラリの使用方法

私はしばらくの間答えを探していましたが、私が間違っていることを理解できません。

環境変数やライブラリパスの設定に問題があると思いますか? (私はLinuxベースのもので初心者ですが、ネット上でチュートリアルを読むときには分かりやすいものを混乱させてしまいます)。

私は、カメラ自体が動作していることをテストしました私のラズベリーと私はサンプルコードを使ってイメージをつかむことができます。

カメラの設定(露出時間など)を変更して写真を撮ってSDカードに保存することもできます。したがって、カメラモジュールは問題ではありません。私の問題は、正しい方法で共有ライブラリを使用する可能性が高くなります。

さらに、いくつかのシンプルな共有ライブラリを作って、そこから私のパイロンカメラコードを使用できることを願っています。私のライブラリにPylonコードを含めない場合、それはうまく動作し、私が望む値を返します。私はそこにパイロンのヘッダーを追加することさえできますし、それはまだうまくコンパイルされます。次に、もう一度別の(この場合はC#)コードからlibを呼び出して、期待どおりの戻り値を得ることができますが、(ライブラリ内の)Pylonコードを呼び出そうとすると、dllNotFoundExceptionが発生します。

私はで私のpylon5コードを配置しているの/ opt/pylon5

私のプロジェクトファイル(私はQtCreatorを使用しています)されて、私はbaslerweb.comここ
http://s.baslerweb.com/media/documents/How%20to%20build%20pylon%20applications%20on%20Raspberry%20Pi.pdf

からもらったマニュアルにadvicedとして

#------------------------------------------------- 

QT  -= gui 
QT  += core 

TARGET = baslercamera 
TEMPLATE = lib 

DEFINES += BASLERCAMERA_LIBRARY 

SOURCES += baslercamera.cpp \  
    Grab.cpp \ 
    Image.cpp \ 
    main.cpp \ 
    BaslerDLL.cpp 


HEADERS += baslercamera.h\ 
    baslercamera_global.h \ 
    Image.h \ 
    Grab.h 


unix { 
    target.path = /usr/lib 
    INSTALLS += target 
} 


#INCLUDEPATH += $$PWD/../pylon5/include 
#DEPENDPATH += $$PWD/../pylon5/include 

INCLUDEPATH += /opt/pylon5/include 
DEPENDPATH += /opt/pylon5/include 


INCLUDEPATH += /home/pi/baslercamera/ 
DEPENDPATH += /home/pi/baslercamera/ 

LIBS += "/opt/pylon5/lib" \ 
    -lpylonc 

ご覧のとおり、INCLUDEPATHとLIBS変数は私の弱点です。私はそこにどのライブラリを含めるべきか、それらを正しく含める方法を理解できません。プロジェクトファイルにそれらを含めることに加えていくつかの環境変数を設定すべきですか?

私もいくつかのライブラリパスを設定しようとしましたが、実際に何をすべきかわかりません。ユーザーマニュアルには

Set the pylon environment variables: 
# source ./pylon4/bin/pylon-setup-env.sh pylon4 

と言いました。これに続いて、pylon4をpylon5に置き換えました。私は、これがパイロンライブラリーを使うための環境変数を設定するだろうと考えました。しかし、私は本当にそこで何が起こるかは分かりません。パイロン5ガイドは言う:私は、私は自分のライブラリにこれらの共有ライブラリを使用する続行する任意のヘルプやアドバイスのために幸せになるように多くの方法でそれを試してみました

Environment Variables 
===================== 

From pylon 5.0 upwards, no additional environment variables are required to 
run pylon-based applications. 

For development, though, the compiler must know where pylon is installed. 
The pylon samples use the environment variable PYLON_ROOT to find the relevant information. 

For your convenience, we created the pylon-setup-env.sh script located in the 
pylon5/bin directory which can carry out the complete setup. 

To setup the environment for a pylon installation in <path> execute: 
    source <path>/bin/pylon-setup-env.sh <path> 

If you want the environment for the standard installation to be persistent, you 
can add 
    source /path/to/your/pylon5/bin/pylon-setup-env.sh /path/to/your/pylon5 
to ~/.bashrc 

For special use cases, you can do a manual environment setup as follows: 

    export PYLON_ROOT=/path/to/your/pylon5 

Even though there is currently only one variable needed, using pylon-setup-env.sh 
is still the preferred way to set up your environment, as we might add more variables 
in the future. 

答えて

0

うわー、この質問は古く、私はまだ答えられていないのに驚いています。

私はちょうどそれを動作させましたが、私のプロジェクトはSconsをビルドシステムとして使用しています。それでも、私が見つけた問題は、十分なライブラリをリンクしていないということでした。これは私が必要なものを得るために設定したものです(qmakeの構文がオフになる可能性があります)。

LIBS += \ 
    -L/opt/pylon5/lib64 \ 
    -lpylonbase \ 
    -lGenApi_gcc_v3_0_Basler_pylon_v5_0 \ 
    -lGCBase_gcc_v3_0_Basler_pylon_v5_0 \ 
    -lLog_gcc_v3_0_Basler_pylon_v5_0 \ 
    -lMathParser_gcc_v3_0_Basler_pylon_v5_0 \ 
    -lXmlParser_gcc_v3_0_Basler_pylon_v5_0 \ 
    -lNodeMapData_gcc_v3_0_Basler_pylon_v5_0