1

按照这个解决方案,我用#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

还有评论中的一个例子:

在此处输入图像描述

4

4 回答 4

2

因此,如果我正确理解您要执行的操作,您希望在文件上运行 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 文件。

于 2016-04-16T20:27:30.043 回答
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
于 2016-04-14T21:59:25.527 回答
-1

'cpp -P xxx -o yyy' 你需要它是 -> 'echo "blahblahblah.cpp" > xxx'

于 2016-04-14T19:41:23.807 回答
-1

1 - 打开 XCode

2 - 创建一个新的 XCode 项目

3 - 选择 OSX 的选项卡

4 - 选择应用程序

5 - 选择命令行工具

6 - 在下一个窗口中,您必须输入产品名称等

7 - 并选择 c++ 作为语言

于 2016-04-10T18:50:36.013 回答