-8

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++ の知識がないため、これを修正できません

プログラムを正常にコンパイルして実行するのを手伝ってくれませんか。

4

2 に答える 2

0

古いバージョンの gcc を使用して古いマシンでコードをコンパイルし、実行可能ファイルを新しいマシンに取り込むことで問題が解決しました。それはうまく動作します。

クラウディオのヒントに感謝します。

于 2013-11-06T17:58:29.870 に答える