gpt4 book ai didi

c++ - 使 cpp(C 预处理器)删除 Mac OS X 上的 C++ 注释

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:45 24 4
gpt4 key购买 nike

我有一个用户报告(很遗憾,由于缺少合适的机器而无法验证)Mac OS X 10.6.4 上的 C 预处理器 (cpp) 命令没有删除 C++/C99 双斜杠 // 来自它处理的文件的注释,无论它给出什么选项。这是 gcc 版本:

 i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)

是否有可能以某种方式使其删除此类注释,正如人们对 C++ 预处理器所期望的那样(这是必需的,因为 cpp 用作 another tool 的一部分)。

最佳答案

我找到了一个适用于 cpp 命令的公式:尝试 cpp -xc++ (注意 -x 之间缺少空格和 c++)。

$ printf '/* block comment */\n// line comment\nnot a comment\n' | cpp -xc++
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"


not a comment

对比:

$ printf '/* block comment */\n// line comment\nnot a comment\n' | cpp -x c++
i686-apple-darwin10-gcc-4.2.1: c: No such file or directory
i686-apple-darwin10-gcc-4.2.1: c++: No such file or directory
i686-apple-darwin10-gcc-4.2.1: warning: '-x -x' after last input file has no effect
i686-apple-darwin10-gcc-4.2.1: no input files

现在“-x c++”应该可以工作了,并且确实可以在我的 Linux 机器上工作(使用 gcc 4.4,但我记得它早在 gcc 2.95 就可以工作了)所以看起来 Apple打破它。

我真的必须再次强调为此类问题提供完整、精确的测试用例的重要性。昨天我没有想到要寻找 Apple 引入了错误,因为我知道 wilx 的回答 应该有效,并且在没有对 OP 用户尝试的内容进行准确描述的情况下,它是他们更有可能在他们的实际命令行上有其他东西正在否定它。如果我在上面显示的命令行和错误消息在原始问题中提供,那会更有效地引起每个人的注意。

关于c++ - 使 cpp(C 预处理器)删除 Mac OS X 上的 C++ 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4137923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com