关注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
评论中的一个例子:
答案 0 :(得分:2)
因此,如果我正确理解您要执行的操作,则需要在文件上运行c预处理程序以生成将存储在另一个文件中的文本输出。我不知道为什么,但是,这是一个能够实现这一目标的命令:
clang -x c frontend/lexer.mll -E -P -o frontend/gen/lexer.mll
这引发了铿锵声;将语言设置为C(-x c
);给你的文件;要求只进行预处理,不要编译或链接(-E
);输出中没有行信息(-P
),将其存储在前端/ gen / lexer.mll
Xcode是一个运行clang的IDE。如果您使用的是ocaml,那么使用Xcode可能没有帮助,因为它不知道如何处理ocaml文件。
答案 1 :(得分:1)
这可能是一个来自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
答案 2 :(得分:-1)
1 - 打开XCode
2 - 创建一个新的XCode项目
3 - 选择OSX标签
4 - 选择申请
5 - 选择命令行工具
6 - 在下一个窗口中,您必须输入产品名称等
7 - 并选择c ++作为语言
答案 3 :(得分:-1)
' cpp -P xxx -o yyy'你需要它 - > ' echo" blahblahblah.cpp" > XXX'