2016-03-12 5 views
0

Я пытаюсь реализовать простую систему сборки для Verilog в Sublime Text, но я получаю следующее сообщение об ошибке, когда я строю:система сборки Verilog для Sublime Text 3

[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 компилятора, команды, для которой является:

iverilog -o outputfile inputfile.v 

Когда я запускаю эту команду из оболочки у меня нет никаких проблем, и это работает точно так, как я намерен его.

Моя Verilog.sublime-build система сборки использует следующий JSON:

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

Если кто-то может предложить мне какие-либо понимание того, что я могу делать неправильно здесь я был бы признателен, чрезвычайно. Если это имеет значение, я бегу от OS X и использую Sublime Text 3.

ответ

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" 
} 

Ну, что также работает, и поэтому более минимальный подход может оставить от окончательного && /usr/local/bin/vvp $file_path/iverilog_compiled/$file_base_name, но это, кроме точки.

Вывод здесь, это то, что даже с shell, установленным в true, команда cmd не запускается в полной среде оболочки с доступом к переменным пути пользователя, и поэтому существует множество встроенных и особенно установленных программ, которые вы можете вызвать прямо из оболочки не будет работать там, без непосредственного источника.

Если кто-то получает подобную ошибку в будущем на их сборке, моя рекомендация будет использовать:

which command_name 

Чтобы найти, где ваша команда находится, а затем включить весь свой путь.

Смежные вопросы