我使用this教程安装了SystemC库2.3.1。
我写了这个世界示例:
//hello.cpp
#include <systemc.h>
SC_MODULE (hello_world) {
SC_CTOR (hello_world) {
}
void say_hello() {
cout << ”Hello World systemc-2.3.0.\n”;
}
};
int sc_main(int argc, char* argv[]) {
hello_world hello(“HELLO”);
hello.say_hello();
return(0);
}
并使用以下命令进行编译:
export SYSTEMC_HOME=/usr/local/systemc230/
g++ -I. -I$SYSTEMC_HOME/include -L. -L$SYSTEMC_HOME/lib-linux -Wl,-rpath=$SYSTEMC_HOME/lib-linux -o hello hello.cpp -lsystemc -lm
编译代码时,库出现错误:
In file included from hello.cpp:1:0:
/usr/local/systemc230/include/systemc.h:118:16: error: ‘std::gets’ has not been declared
using std::gets;
^~~~
我该如何解决?
最佳答案
std::gets
已在C++ 11中删除(请参阅What is gets() equivalent in C11?)
如果要使用C++ 11标志(可能带有g++别名)进行构建,则必须在systemc.h
中禁用此行。
代替
using std::gets;
和
#if defined(__cplusplus) && (__cplusplus < 201103L)
using std::gets;
#endif
关于c++ - 库的Systemc错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38352801/