g++编译代码报错hw_cardreader.cpp:35:84: error: ISO C++ forbids declaration of ‘HW_OpenDevice’ with no type [-fpermissive] extern "C" HW_OpenDevice(int reserve_1, int reserve_2, int reserve_3, int reserve_4)
时间: 2024-03-28 22:36:47 浏览: 67
这个错误是因为你没有在 `HW_OpenDevice` 函数之前声明函数的返回类型。你需要在函数名之前加上返回类型,例如 `void HW_OpenDevice(int reserve_1, int reserve_2, int reserve_3, int reserve_4)`。如果你不确定该函数的返回类型,请参考该函数的文档或者查看该函数的实现。此外,你也可以在编译器选项中加上 `-fpermissive` 选项来允许这种不规范的声明方式,但这并不是一个好的解决方案,因为这可能会导致其他问题。
相关问题
In file included from ReadWrite.cpp:4: ReadWrite.h:4:39: error: ISO C++ forbids declaration of ‘parameter’ with no type [-fpermissive] 4 | void my_cpp_function(const & std::string fullName); | ^~~~~~ ReadWrite.h:4:34: error: expected ‘,’ or ‘...’ 4 | void my_cpp_function(const & std::string fullName);
这个错误是因为你在函数声明中的参数类型不正确。正确的写法应该是:
```
void my_cpp_function(const std::string& fullName);
```
你需要将代码中的`&`替换成`const std::string&`,这样才能正确地声明一个string类型的参数。
➜ fortranRW g++ -shared -fPIC -o libmy_cpp_code.so ReadWrite.cpp In file included from ReadWrite.cpp:4: ReadWrite.h:4:34: error: ISO C++ forbids declaration of ‘string’ with no type [-fpermissive] 4 | void my_cpp_function(const & string fullName); | ^~~~~~ ReadWrite.h:4:41: error: expected ‘,’ or ‘...’ before ‘fullName’ 4 | void my_cpp_function(const & string fullName); | ^~~~~~~~
这个错误是因为你在函数声明中的参数类型不正确。正确的写法应该是:
```
void my_cpp_function(const std::string& fullName);
```
你需要将代码中的`& string`替换成`const std::string&`,这样才能正确地声明一个string类型的参数。