如何将C++库集成到Matlab2018b (macOS Mojave)中,以便与mex()
函数一起使用。目前,我想使用Basler相机的C++库来使用mex来解决这个问题。为此,我必须包括以下文件:
*.framework,头文件,*.dylib文件
否则,#include
文件中的c++调用将无法工作。我已经将integrated中没有问题的库与以下命令集成在一起,#include <pylon/...>
工作得很好:
mac: LIBS -F$PWD/.库/框架/框架: LIBS += += -lLog_gcc_v3_1_Basler_pylon_v5_1 macx: LIBS += -L$PWD/../../库/框架/PWD.框架/版本/A/图书馆/ -lGenApi_gcc_v3_1_Basler_pylon_v5_1 INCLUDEPATH += $$PWD/../../../../../../Library/Frameworks/pylon.framework/Headers/GenICam += INCLUDEPATH += $PWD//././Library/Frameworks/pylon.framework/Versions/A/Libraries DEPENDPATH += $$PWD/../../../../../../Library/Frameworks/pylon.framework/Versions/A/Libraries QMAKE_CXXFLAGS += -F/Library/Framework
在Matlab中,我试图这样做,但它不起作用,并且在调用c++文件中的库时出错:
ipath_1 = '-I/Library/Frameworks';
ipath_2 = '-I/Library/Frameworks/pylon.framework/Headers/GenICam';
ipath_3 = '-I/Library/Frameworks/pylon.framework/Versions/A/Libraries';
lib_1 = '-L/Library/Frameworks/pylon.framework/Versions/A/Libraries/ -lLog_gcc_v3_1_Basler_pylon_v5_1';
lib_2 = '-L/Library/Frameworks/pylon.framework/Versions/A/Libraries/ -lGCBase_gcc_v3_1_Basler_pylon_v5_1';
lib_3 = '-L/Library/Frameworks/pylon.framework/Versions/A/Libraries/ -lGenApi_gcc_v3_1_Basler_pylon_v5_1';
mex('-largeArrayDims',...
'-c',...
ipath_1, ipath_2, ipath_3,...
lib_1, lib_2, lib_3,...
'basler_set_get.cpp')
% Error:
% #include <pylon/PylonIncludes.h>
% ^~~~~~~~~~~~~~~~~~~~~~~
% 1 error generated.
如何在Matlab中管理集成?我很感谢你的帮助。
发布于 2019-10-08 12:05:42
如果有人遇到同样的问题,我想张贴一个解决办法,我已经发现了在此期间。如果使用这些标志执行mex调用,则将正确编译所有内容:
mex '-I/Library/Frameworks/pylon.framework/Versions/A/Headers/GenICam'...
'-I/Library/Frameworks/pylon.framework/Versions/A/Headers/pylon/usb'...
'-I/Library/Frameworks/pylon.framework/Versions/A/Headers'...
'-L/Library/Frameworks/pylon.framework/Versions/A/Libraries'...
'-lGCBase_gcc_v3_1_Basler_pylon_v5_1.dylib'...
'-lGenApi_gcc_v3_1_Basler_pylon_v5_1.dylib'...
CXXFLAGS='-F/Library/Frameworks $CXXFLAGS'...
LDFLAGS='-framework pylon $LDFLAGS'...
LIBS+='-framework pylon'...
[YOUR FILENAME].cpp
https://stackoverflow.com/questions/56393601
复制相似问题