0

Sublime Text で Verilog 用の単純なビルド システムを実装しようとしていますが、ビルド時に次のエラーが発生します。

[Errno 2] No such file or directory: 'iverilog'
[cmd: ['iverilog', '-o', 'iverilog/compiled', '/Users/ryanbeltran/Documents/Programming/Verilog/testing/test.v']]
[dir: /Users/ryanbeltran/Documents/Programming/Verilog/testing]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]

私のビルド システムは、Icarus Verilog Compiler を使用することになっています。コマンドは次のとおりです。

iverilog -o outputfile inputfile.v

そのコマンドをシェルから実行しても問題はなく、意図したとおりに機能します。

私のVerilog.sublime-buildビルド システムは、次の JSON を使用します。

{
    "cmd": ["iverilog", "-o", "iverilog/compiled", "$file"],
    "selector": "source.v"
} 

ここで私が間違っている可能性があることについて誰かが私に洞察を提供できれば、私はそれを大いに感謝します. 違いがある場合、私は OS X から実行しており、Sublime Text 3 を使用しています。

4

1 に答える 1

1

さらに実験を重ねた結果、これにたどり着きました。私が必要としていたのは

{
    "shell":true,

    "cmd": [ "mkdir -pv $file_path/iverilog_compiled && touch $file_path/iverilog_compiled/$file_base_name && /usr/local/bin/iverilog -o $file_path/iverilog_compiled/$file_base_name $file && /usr/local/bin/vvp $file_path/iverilog_compiled/$file_base_name"],

    "selector": "source.v"
}

まあ、それもそれを実行するので、より最小限のアプローチでは final を省略できますが、それは重要ではありません&& /usr/local/bin/vvp $file_path/iverilog_compiled/$file_base_name

ここでのポイントはshell、true に設定してもcmd、ユーザーのパス変数にアクセスできる完全なシェル環境でコマンドが実行されないため、シェルから直接呼び出すことができる多くのビルトインおよび特にインストールされたプログラムが機能しないことです。直接調達することなくそこに。

将来、ビルドで同様のエラーが発生した場合は、次を使用することをお勧めします。

which command_name

コマンドが配置されている場所を見つけて、パス全体を含めます。

于 2016-03-12T22:11:45.647 に答える