我是g ++的新手。
我正在尝试编译此简单代码。
但是,有此错误。
错误:无法使用类型为“ const char [34]”的左值初始化类型为“ const char”的返回对象
#include <boost/python.hpp>
char const doYouDo( const char* jobs ){
return "Hello, I am an embedded engineer.";
}
BOOST_PYTHON_MODULE( what ){
boost::python::def( "doYouDo", doYouDo);
}
我应该在哪里修理?
我的g ++编译命令在这里。
$g++ -fPIC -Wall -I/System/Volumes/Data/Users/whitebear/anaconda3/envs/aiwave/include/python3.6m/ -lboost_python -shared -o whatModule.so what.cpp
"Hello, I am an embedded engineer."
...是String Literal,它的类型为,const char[]
并且您的函数定义为返回单个常量字符(char const
),因此会出现错误。
你可以做什么:
由于无法在C ++中按值返回C样式的数组,因此可以改为返回一个指针:
char const* doYouDo( const char* jobs ) {
return "Hello, I am an embedded engineer.";
}
或者,您也可以使用std::string
它,因为它具有以下内置的构造函数const char*
:
std::string doYouDo( const char* jobs ) {
return "Hello, I am an embedded engineer.";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句