OS X中的“Clang:错误:无输入文件”

时间:2016-04-07 16:39:01

标签: c++ macos ocamllex

关注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

评论中的一个例子:

enter image description here

4 个答案:

答案 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'