我有一個帶有「uc480.h」+「uc480.lib」的攝像頭(thorlabs dcc1645c)用C++編程。我的問題是我需要使用與Python的相機,所以我試圖調用C++類與Python作爲告知由弗洛裏安:使用ctypes從python調用C++:g ++ undefined reference
這是我的C++代碼(Cam2.cpp):
\#include "uc480.h"
class Cam{
public:
UC480_CAMERA_LIST* pucl;
int nNumberOfCameras;
int GetNumberOfCameras(){
return is_GetNumberOfCameras(&nNumberOfCameras);
}
};
extern "C" {
Cam* Cam_new(){ return new Cam(); }
int Cam_GetNumberOfCameras(Cam* cam){ cam->GetNumberOfCameras(); }
}
我試圖克++編譯:
g++ -fPIC -c Cam2.cpp -o Cam2.o
g++ -shared -Wl,-soname,libCam2.so -o libCam2.so Cam2.o
第二行給出了一個錯誤:
Cam2.o:Cam2.cpp:(.text$_ZN3Cam18GetNumberOfCamerasEv[Cam::GetNumberOfCameras()]+
0x1a): undefined reference to `__imp_is_GetNumberOfCameras'
collect2.exe: error: ld returned 1 exit status
'is_GetNumberOfCameras'在「uc480.lib」中定義,所以我認爲鏈接存在問題。我如何解決它?
也請告訴我,如果你現在有其他的可能性,使用相機與Python。
那麼你實際上並沒有*與'uc480'庫鏈接*。因此,鏈接庫時無法找到該函數。 –
請告訴我,我如何鏈接它。 – Dragoner