OSX什么&#34;错误:无法转换&#39; const std :: __ cxx11 :: basic_string <char>&#34;是什么意思?

时间:2015-06-09 21:42:32

标签: c++ c++11 homebrew openmpi mpic++

我正在我的机器上编写朋友的代码,我不断遇到这个错误:

 $ mpic++ dummy_file_name.cpp

 dummy_file_name.cpp: In member function 'bool dummy_name1::dummy_name2::python_convert(const StringMultiArray&, PyObject**)':
 dummy_file_name.cpp:430:55:error: cannot convert 'const std::__cxx11::basic_string<char>' to 'const char*' for argument '1' to 'PyObject* PyString_FromString(const char*)'
     PyList_SetItem(*dst, i, PyString_FromString(src[i]));

这是什么意思?我该如何诊断或治疗这个问题?我正在使用mpic ++编译器。我试过谷歌搜索这个错误,但我没有找到任何富有成效的信息。

以下是我构建环境的方法:

brew reinstall gcc --without-multilib
export HOMEBREW_CC=gcc-5
export HOMEBREW_CXX=g++-5
brew install openmpi --build-form-source
brew install llvm --with-clang

1 个答案:

答案 0 :(得分:1)

它说它无法将const std::string AKA const char*转换为c_str()。这是编译器报告的正确错误。如上所述,您可以使用gcc来解决此问题,但这可能会非常糟糕,并且可能违反某个组件的开源许可证。

至于为什么会出现此错误,可能会与标准的标准c ++库混淆。您似乎正在使用openmpi llvmc++11作为非常奇怪的链接步骤。此外,您强制gcc llvmcounties <- readRDS("census-app/data/counties.rds") 不强。

您从哪里获得这些构建说明?您可能想要查找更新的指令集。