Следующий это решение, я использую #include "...frontend/tokens.mll"
в моем lexer.mll
тогда я использую cpp -P frontend/lexer.mll -o frontend/gen/lexer.mll
создать полный файл MLL. Это решение работало раньше под Ubuntu.
Теперь я пытаюсь сделать это в Mac OS 10.11.1
выдаёт ошибку clang: error: no input files
,
gcc -v
возвращается
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Я не вижу, где я использую XCode или PCH файл. Кто-нибудь знает, как я должен настроить среду, чтобы сделать cpp
Работа?
Изменить 1:
cpp --version
возвращается
Apple LLVM version 7.3.0 (clang-703.0.29)
Target: x86_64-apple-darwin15.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
И пример из комментария:
Поэтому, если я правильно понимаю, что вы пытаетесь сделать, вы хотите запустить препроцессор c для файла, чтобы получить текстовый вывод, который будет сохранен в другом файле. Я не знаю почему, но вот команда, которая выполнит это:
clang -x c frontend/lexer.mll -E -P -o frontend/gen/lexer.mll
Это вызывает лязг; устанавливает язык на C (-x c
); дает ваш файл; запрашивает только предварительную обработку, без компиляции или ссылки (-E
); нет информации о строке в выводе (-P
), хранит его в frontend / gen / lexer.mll
Xcode — это IDE, в которой работает clang. Если вы работаете в ocaml, может быть бесполезно использовать Xcode, так как он не знает, что делать с файлами ocaml.
Это может быть ошибка от Clang, так как этот работает для меня:
$ cpp -P xxx yyy
$ cat yyy
from zzz
а также
$ clang --version
Apple LLVM version 7.0.2 (clang-700.1.81)
Target: x86_64-apple-darwin14.5.0
Thread model: posix
1 — открыть XCode
2 — Создать новый проект XCode
3 — выберите вкладку OSX
4 — выберите приложение
5 — выберите инструмент командной строки
6 — в следующем окне вы должны ввести название продукта и т. Д.
7 — и выберите c ++ в качестве языка
‘cpp -P xxx -o yyy’ вам нужно, чтобы это было -> ‘echo «blahblahblah.cpp»> xxx’