簡體   English   中英

OSX“錯誤:無法轉換&#39;const std :: __ cxx11 :: basic_string”是什么意思 <char> “ 意思?

[英]OSX What does “error: cannot convert 'const std::__cxx11::basic_string<char>” mean?

我正在我的計算機上編譯朋友的代碼,並且不斷遇到此錯誤:

 $ 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 ++編譯器。 我嘗試使用Google搜索該錯誤,但未找到任何有效的信息。

這是我構建環境的方式:

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

就是說它不能將const std::__cxx11::basic_string<char> const std::stringconst char* 這是編譯器要報告的適當錯誤。 如上所述,您可以使用c_str()修復此問題,但這將是很糟糕的事情,並且可能違反了某些組件的開源許可證。


至於為什么收到此錯誤,可能是與標准標准c ++庫混在一起了。 您似乎在openmpi使用gcc ,在鏈接步驟中使用llvm ,這很奇怪。 另外,您要為gcc強制使用c++11 ,而不是llvm

您從哪里獲得這些構建說明? 您可能要查找一組更新的說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM