我是 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);
}
Run Code Online (Sandbox Code Playgroud)
我应该在哪里修复?
我的 g++ 编译命令在这里。
$g++ -fPIC -Wall -I/System/Volumes/Data/Users/whitebear/anaconda3/envs/aiwave/include/python3.6m/ -lboost_python -shared -o whatModule.so what.cpp
Run Code Online (Sandbox Code Playgroud)
"Hello, I am an embedded engineer."
Run Code Online (Sandbox Code Playgroud)
... 是一个String Literal,它的类型为 ,const char[]并且您的函数被定义为返回单个常量字符 ( char const) ,因此您的错误。
你可以做什么:
由于无法在 C++ 中按值返回 C 样式数组,因此可以返回指针:
char const* doYouDo( const char* jobs ) {
return "Hello, I am an embedded engineer.";
}
Run Code Online (Sandbox Code Playgroud)
或者您也可以使用,std::string因为它有一个内置构造函数const char*:
std::string doYouDo( const char* jobs ) {
return "Hello, I am an embedded engineer.";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3124 次 |
| 最近记录: |