SWIG を使用して C++ コード用のラッパー ファイルを作成し、それを raspberry pi Linux プラットフォームの python で呼び出そうとしています。C++ コードには、ビルド関数に uEye IDS カメラが含まれています。QTクリエーターとopenCVを使用しています。
ラッパー ファイルを生成するために、ソースを使用しました: https://mit-crpg.github.io/OpenMOC/devguide/swig.html通常の C++ コードでは問題なく動作します。IDS カメラのラッパーを生成しようとすると、次のエラーが表示されます: Import error:./filename.so: undefined symbol: is_InitCamera. どのように修正すればよいのかわかりません。
Exam.i - インターフェースファイル-
%module exam
%{
#define SWIG_FILE_WITH_INIT
#include "exam.h"
%}
%include "exam.h"
Exam.h - ヘッダファイル-
#include <iostream>
#include <ueye.h>
#include <opencv2/opencv.hpp>
double cam (int a);
Exam.cpp - ソースファイル -
#include"exam.h"
using namespace std;
double cam(int a)
{
int nRet = 0;
int nMemoryId = 0;
HIDS hCam = a;
HWND hWndDisplay = 0;
nRet = is_InitCamera(&hCam, hWndDisplay);
if (nRet != IS_SUCCESS)
{
cout << "ERROR" << endl;
}
else
{
cout << "Camera initialisation was successful!" << endl << endl;
}
// Disables the hCam camera handle and releases the data structures and memory areas taken up by the uEye camera
nRet = is_ExitCamera(hCam);
if (nRet == IS_SUCCESS)
{
cout << "The camera has been successfully logged off!" << endl << endl;
}
system("pause");
return 1;
}