IT源码网

c++之linux下源码编译

grandyang 2024年02月27日 程序员 27 0

我无法在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) 

删除变量的常量。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!