Я не нахожу в командной строке документов для компиляции исходного кода F # и его последующего запуска в ОС Ma c. Вот то, что я пробовал, но не сработало.
Во-первых, у меня есть файл спецификации лексера «ExprLex_hj.fsl». Я создал лексер, используя странную командную строку, взятую с веб-сайта:
mono ~/.nuget/packages/fslexyacc/10.0.0/build/fslex/net46/fslex.exe --unicode ExprLex_hj.fsl
Строка выше создает файл с именем «ExprLex_hj.fs». Затем я скомпилировал этот файл f # с другой странной командной строкой, которую скопировал с другого веб-сайта
fsharpc -r ~/.nuget/packages/fslexyacc/10.0.0/build/fsyacc/net46/FsLexYacc.Runtime.dll ExprLex_hj.fs
Эта строка выше создает EXE-файл в моей Ma c OS, ExprLex_hj.exe
. Теперь мне нужно запустить этот EXE-файл. Я слышал, что мы можем сделать это с помощью mono, реализации Microsoft. NET Framework с открытым исходным кодом. Итак, я попробовал
mono ExprLex_hj.exe
Бум! Я получил сообщение об ошибке:
Необработанное исключение: System.BadImageFormatException: не удалось разрешить токен поля 0x04000008 из-за: Не удалось загрузить тип поля ' . $ExprLex:_fslex_tables@24 '(2) из-за: Не удалось загрузить файл или сборку' FsLexYa cc .Runtime, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null 'или одну из его зависимостей. сборка: /Users/zell/test_lexer_fsharp/ExprLex_hj.exe тип: $ ExprLex member: (null)
Подскажите, как решить эту проблему? Дело в том, что можно найти немного документации о том, как запустить исполняемый файл, созданный из исходного файла F #. В большинстве руководств предлагается использовать .FSX или запускать af # файл в REPL, что мне не подходит - я хотел бы выполнить сгенерированный двоичный файл из командной строки.
Кроме того, на моем компьютере у меня есть Visual Studio установлена, но мне все еще нужно знать способ запуска EXE из командной строки. Кроме того, после установки Visual Studio я получил «fshapri», «fsharp c», «mono» и «do tnet» в моем PATH. На самом деле я не уверен, следует ли мне использовать «mono» или «do tnet» для запуска EXE в этой ситуации.