mex+;标准库中的nvcc链接器问题 我在Matlab MX链接到Mac OS X MaVICS上的C++标准库时遇到了一些麻烦。链接到nvcc生成的代码时会出现问题

mex+;标准库中的nvcc链接器问题 我在Matlab MX链接到Mac OS X MaVICS上的C++标准库时遇到了一些麻烦。链接到nvcc生成的代码时会出现问题,c++,matlab,gcc,cuda,C++,Matlab,Gcc,Cuda,所有错误都与标准库相关: 架构x86_64的未定义符号: “std::string::c_str()const”,引用自: ... 据我所知,nvcc和mex都使用相同的编译器(gcc->clang),它们都链接到-lstdc++/-stdlib=libstdc++,但仍然会导致大量链接器错误。另一方面,如果我编译了有问题的指令: gcc-O-Wl,-two-level_namespace-undefined error-arch x86_64-Wl,-syslibroot,/Applicat

所有错误都与标准库相关:

架构x86_64的未定义符号: “std::string::c_str()const”,引用自: ...

据我所知,nvcc和mex都使用相同的编译器(gcc->clang),它们都链接到
-lstdc++/-stdlib=libstdc++
,但仍然会导致大量链接器错误。另一方面,如果我编译了有问题的指令:

gcc-O-Wl,-two-level_namespace-undefined error-arch x86_64-Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk-mmacosx version min=10.9-bundle-Wl,-导出的_符号列表,/Applications/MATLAB_R2012a.app/extern/lib/maci64/mexFunction.map-O“solverØMATLAB.mexmaci64”solver_matlab.o.“./solver_cu.o”“../solver_cu_link.o”-L/usr/local/cuda/lib-lcudart-lcublas-L/Applications/matlab_r2012 a.app/bin/maci64-lmx-lmex-lmat-lstdc++


在终端中使用
gcc-4.8
,则代码可以正确编译。我不知道该如何理解这个问题,因此如果有人有任何建议,我将非常感激。

如果有人偶然发现相同的问题,解决方法是将另外两个标志传递给mex

LDFLAGS='\$LDFLAGS-stdlib=libstdc++'cxflags='\$cxflags-stdlib=libstdc++'