サーマルカメラから画像を読み込むアプリケーションを作成するためにPleora SDKを使用しようとしています。 私の最初の試みはネットワーク上で利用可能なデバイスを見つけることですが、C++の奇妙な動作に直面しています。これは本当に合理的な説明はありません。コードフローは "PvSystem lSystem "と呼ばれています。ここでは、私の説明を支援するために呼び出されない関数内のC++変数宣言が通常のアプリケーションフローを変更します
は、コードは次のとおりです。
#include <iostream>
#include <PvSystem.h>
#include <PvInterface.h>
#include <PvDevice.h>
int DeviceFinding()
{
PvSystem lSystem;
return 0;
}
int main()
{
std::cout << "Application start" << std::endl;
//DeviceFinding();
return 0;
}
このコードは、次のビルドラインでのUbuntu 16.04 64-ビット上で実行すると:
g++ weird.cpp -g3 -o WeirdTest -I/opt/pleora/ebus_sdk/Ubuntu-14.04-x86_64/include -L/opt/pleora/ebus_sdk/Ubuntu-14.04-x86_64/lib -lPvBase -lPvBuffer -lPvStream -lPvDevice -lPvGenICam
出力:
Error: GENICAM_ROOT_V2_4 is not set.
しかし、私が ""とコメントした場合、PvSystemシステム」、
#include <iostream>
#include <PvSystem.h>
#include <PvInterface.h>
#include <PvDevice.h>
int DeviceFinding()
{
// PvSystem lSystem;
return 0;
}
int main()
{
std::cout << "Application start" << std::endl;
//DeviceFinding();
return 0;
}
期待されているものをアプリケーションが印刷:
Application start
私は本当に何が起こっているかの見当がつかない。誰かがこれを理解するのを手助けできますか?
ほとんどの場合、表示されなかったコードのどこかのバグから未定義の動作が発生します。 –