我无法在centos 6.4 linux 中编译Verilog2C++ 的源代码。请从这里下载源代码。下载起来非常简单。
http://verilog2cpp.sourceforge.net/
运行 make 命令时出现以下错误
verilog.l:435: error: 'assert' was not declared in this scope
当我注释掉所有断言语句时。我遇到了这些无法修复的错误
Verilog.cc: In constructor 'moe::Verilog::Number::Number(const char*)':
Verilog.cc:224: error: invalid conversion from 'const char*' to 'char*'
Verilog.cc:230: error: invalid conversion from 'const char*' to 'char*'
Verilog.cc:245: error: invalid conversion from 'const char*' to 'char*'
下面是 Verilog.cc 文件中的代码片段
Verilog::Number::Number(const char* text):
text_(text)
{
static const char* BIN_NUM ="01XZ";
static const char* OCT_NUM ="01234567XZ";
static const char* HEX_NUM ="0123456789ABCDEFXZ";
vector<char> bits;
const char* ptr;
...
char* idx;
ptr =text+strlen(text)-1;
for( ;*ptr!='\'';ptr-- )
{
switch( base )
{
case 2:
idx =index(BIN_NUM,toupper(*ptr)); //THIS LINE CAUSES ERROR
if( idx!=NULL )
if( bits.size()<width )
bits.push_back( *idx );
由于缺乏 C/C++ 知识,我无法解决此问题
您能帮我成功编译并运行该程序吗?
请您参考如下方法:
看起来代码有问题,所以新的编译器拒绝编译它。
编辑代码并使用
const_cast<char*> (variablename)
删除变量的常量。