使用 clang 编译 c++ 时出错

Error using clang to compile c++

本文关键字:出错 c++ 编译 clang 使用      更新时间:2023-10-16

我一直在尝试使用 clang 在 c++ 中编译一个简单的 hello world 程序。现在在过去,我已经能够使用以下命令执行此操作:

clang -lc++ hello.cpp -o hello

当我尝试这样做时,我收到错误:

/usr/bin/ld: cannot find -lc++

Clang:错误:链接器命令失败,退出代码为 1

如果我使用 g++,它可以编译而没有错误。为什么叮当声会出现这个问题?

你需要安装 libc++ 库。

尝试是否正在使用 ubuntu:

sudo bash -c "cat >> /etc/apt/sources.list" << LLVMAPT
# LLVM
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty main
# 3.5 
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5 main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5 main
# 3.6 
deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main
deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main
LLVMAPT
wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -
sudo apt-get update -y
sudo apt-get install -y clang-3.6 lldb-3.6 libc++-dev libc++abi-dev

如果上面的脚本不起作用,或者您不使用 ubuntu,请查看以下网站下载该库:

http://libcxx.llvm.org/

http://libcxx.llvm.org/docs/BuildingLibcxx.html

Clang 编译 C 语言,Clang++ 编译C++。这些是不同的语言,因此您需要为每种语言使用单独的编译器。

前段时间我也遇到了麻烦。我尝试链接大量库(-lstdc++等),从源代码构建 stdlib 等,但没有任何效果。这是一个法官问题,直到我意识到我必须使用clang++

所以你也是,你需要clang++而不是clang.