【问题标题】:error when trying to compile with clang尝试使用 clang 编译时出错
【发布时间】:2015-09-09 12:32:47
【问题描述】:

我使用 Ubuntu 14 并尝试在终端中编译一个 c++ 程序。直到现在我使用 g++ 并且编译工作没有问题。因为我更喜欢来自 clang 的错误消息,所以我想从现在开始使用 clang++。

到目前为止我使用的命令

g++ -oexec main.cpp file.cpp

但是当我尝试时

clang++ -oexec main.cpp file.cpp

我得到了错误

clang: error: cannot specify -o when generating multiple output files

【问题讨论】:

  • 你确定 Clang 有“oexec”选项吗,因为谷歌搜索没有结果。
  • 这些是提供给 clang 的唯一选项吗?因为这应该可以工作并生成一个名为exec 的可执行文件。如果您指定例如它不起作用-c,因为 clang 无法将多个源文件折叠成一个对象。

标签: c++ terminal clang++


【解决方案1】:

它对我有用。我认为您在使用 clang 编译时也会将“-c”标志传递给编译器。

当你传递 '-c' 时,它也不适用于 clang/gcc。这是因为当您传递“-c”时,您实际上是在将每个文件编译为目标文件(.o 文件),因此在这种情况下提供“-o”是不正确的。

【讨论】:

    【解决方案2】:

    This 是所有 Clang 标志的列表。如您所见,“oexec”不是其中之一。相反,Clang 将您的命令读取为 -o (Write output to ) 并吐出错误,因为在输出到多个文件时您不能使用 -o。

    【讨论】:

    • 当我不使用标志 -o 时它可以工作,但它会将程序写入 a.out 文件。如何为输出指定特定名称?
    • @Jonas 试试“-o yourFileName”
    • 我试过了,当我只使用一个 *.cpp 文件时它可以工作,但如果我使用多个文件,错误又会发生
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多