在this solution之后,我在#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
这会调用clang;将语言设置为C(
-x c
);提供您的文件;仅要求预处理,不要求编译或链接(-E
);输出中没有行信息(-P
),将其存储在frontend / gen / lexer.mll中Xcode是运行clang的IDE。如果您使用的是ocaml,则使用Xcode可能无济于事,因为它不知道如何处理ocaml文件。
关于c++ - 在OS X中为“Clang: error: no input files”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36482291/