使用带有外部“C”的MinGW的MSVC库

时间:2014-02-01 06:22:03

标签: c++ visual-c++ mingw

我最近获得了一个与Lumenera制作的相机接口的SDK。它们为MSVC提供.dll和.lib文件,并声称该库可以与Borland C ++一起使用。但是,我的项目使用的是MinGW(g ++),并且他们不提供支持。

我之前已经问过类似的问题(例如hereherehere),但我希望能够在MinGW中使用这些库,因为这些行在api标题中:

#ifdef __cplusplus
#define LUCAM_API 
extern "C" __declspec(dllexport)
#else
#define LUCAM_API __declspec(dllexport)
#endif
#else
#ifdef __cplusplus
#define LUCAM_API 
extern "C" /*__declspec(dllexport)*/
#else
#define LUCAM_API /*__declspec(dllexport)*/
#endif

#define LUCAM_EXPORT __stdcall

我已经读过,不太可能让C ++库在不同的编译器之间工作,但是这些行告诉我这些库是在C.这是一个公平的解释吗?

按照MinGW MSVC and MinGW DLLs页面上建议的步骤导致错误,例如:

undefined reference to `LucamNumCameras()@0'

我已经尝试了reimp和pexports以及dlltool程序,它们都给出了相同的响应。我无法获取源代码,在开始尝试将所有预先存在的代码迁移到MSVC之前,是否有任何最后的建议才能使其生效?

修改

我正在使用CodeLite IDE,并为其链接器提供了库“liblucamapi.a”,并在相应的字段中给出了它的路径。我可以从构建输出中确认库路径是使用-L../../Lib/lib32给g ++而库本身是"-llucamapi"。除了-o ./Debug/v2 @"v2.txt"之外,没有其他标志给g ++。

0 个答案:

没有答案