carla make PythonAPI 报错:The C++ compiler“/usr/bin/clang++-10“is not able to compile a simple test

系统:ubuntu20.04,carla版本:0.9.14

安装carla时,运行指令

make PythonAPI

完整报错内容大致如下:

Check for working CXX compiler: /usr/bin/clang++-10 -- broken
CMake Error at /usr/share/cmake-3.16/Modules/CMakeTestCXXCompiler.cmake:53 (message):
The C++ compiler

"/usr/bin/clang++-10"
is not able to compile a simple test program.

It fails with the following output:

Change Dir: /home/hongtae/carla/Build/llvm-8.0-build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/ninja cmTC_c25ed && [1/2] Building CXX object CMakeFiles/cmTC_c25ed.dir/testCXXCompiler.cxx.o
[2/2] Linking CXX executable cmTC_c25ed
FAILED: cmTC_c25ed 
: && /usr/bin/clang++-10     CMakeFiles/cmTC_c25ed.dir/testCXXCompiler.cxx.o  -o cmTC_c25ed   && :
/usr/bin/ld: cannot find -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:39 (project)

-- Configuring incomplete, errors occurred!
See also "/home/hongtae/carla/Build/llvm-8.0-build/CMakeFiles/CMakeOutput.log".
See also "/home/hongtae/carla/Build/llvm-8.0-build/CMakeFiles/CMakeError.log".
make: *** [Util/BuildTools/Linux.mk:137: setup] Error 1

以下是本人的解决步骤,不一定对所有人有用


1. 锁定报错内容

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

大概是库libstdc++出问题,可能是没安装,也可能是链接丢失

2. 直接安装libstdc++。不管之前有没有安装过,直接从头安装一遍

sudo apt install libstdc++-7-dev
sudo apt install libstdc++-8-dev
sudo apt install libstdc++-9-dev
sudo apt install libstdc++-10-dev
sudo apt install libstdc++-11-dev

安装完后运行指令查找对应的库

locate libstdc++.so

显示结果:

/home/delin/.local/share/Trash/files/CLion-2023.1.5/clion-2023.1.5/plugins/remote-dev-server/selfcontained/lib/libstdc++.so.6
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib/libstdc++.so
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib/libstdc++.so.6
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib/libstdc++.so.6.0.19
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib/libstdc++.so.6.0.19-gdb.py
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib64/libstdc++.so
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib64/libstdc++.so.6
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib64/libstdc++.so.6.0.19
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/aarch64-unknown-linux-gnueabi/lib64/libstdc++.so.6.0.19-gdb.py
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/lib64/libstdc++.so
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/lib64/libstdc++.so.6
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/lib64/libstdc++.so.6.0.19
/home/delin/UnrealEngine_4.26/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/lib64/libstdc++.so.6.0.19-gdb.py
/home/delin/anaconda3/envs/py2/lib/libstdc++.so
/home/delin/anaconda3/envs/py2/lib/libstdc++.so.6
/home/delin/anaconda3/envs/py2/lib/libstdc++.so.6.0.29
/home/delin/anaconda3/envs/py37/lib/libstdc++.so
/home/delin/anaconda3/envs/py37/lib/libstdc++.so.6
/home/delin/anaconda3/envs/py37/lib/libstdc++.so.6.0.29
/home/delin/anaconda3/envs/py38/lib/libstdc++.so
/home/delin/anaconda3/envs/py38/lib/libstdc++.so.6
/home/delin/anaconda3/envs/py38/lib/libstdc++.so.6.0.29
/home/delin/anaconda3/lib/libstdc++.so
/home/delin/anaconda3/lib/libstdc++.so.6
/home/delin/anaconda3/lib/libstdc++.so.6.0.29
/home/delin/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so
/home/delin/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6
/home/delin/anaconda3/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6.0.29
/home/delin/anaconda3/pkgs/nsight-compute-2023.2.0.16-0/nsight-compute/2023.2.0/host/linux-desktop-glibc_2_11_3-x64/libstdc++.so.6
/opt/clion-2023.1.5/plugins/remote-dev-server/selfcontained/lib/libstdc++.so.6
/opt/nvidia/nsight-compute/2022.3.0/host/linux-desktop-glibc_2_11_3-x64/libstdc++.so.6
/opt/nvidia/nsight-systems/2022.4.2/host-linux-x64/libstdc++.so.6
/opt/pycharm/pycharm-2021.3.3/plugins/remote-dev-server/selfcontained/lib/libstdc++.so.6
/snap/core20/1974/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core20/1974/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
/snap/core20/1974/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py
/snap/core20/2015/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core20/2015/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
/snap/core20/2015/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28-gdb.py
/snap/core22/858/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core22/858/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
/snap/core22/858/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30-gdb.py
/snap/core22/864/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/core22/864/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
/snap/core22/864/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30-gdb.py
/snap/gnome-42-2204/120/usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so
/snap/gnome-42-2204/120/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/gnome-42-2204/120/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
/snap/gnome-42-2204/126/usr/lib/gcc/x86_64-linux-gnu/11/libstdc++.so
/snap/gnome-42-2204/126/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/snap/gnome-42-2204/126/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30
/usr/lib/gcc/x86_64-linux-gnu/10/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/10/x32/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/7/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/8/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/8/x32/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.32
/usr/lib/nsight-systems/Host-x86_64/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32
/usr/lib32/libstdc++.so.6
/usr/lib32/libstdc++.so.6.0.32
/usr/libx32/libstdc++.so.6
/usr/libx32/libstdc++.so.6.0.32
/usr/share/gdb/auto-load/usr/lib/i386-linux-gnu/libstdc++.so.6.0.32-gdb.py
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32-gdb.py
/usr/share/gdb/auto-load/usr/lib32/libstdc++.so.6.0.32-gdb.py
/usr/share/gdb/auto-load/usr/libx32/libstdc++.so.6.0.32-gdb.py

3. 从上面结果来看,libstdc++的库是有的,但是/usr/lib/下并不存在libstdc++.so或者libstdc++.so.6之类的内容,结合之前的报错内容,接下来要在/usr/lib/文件夹下添加libstdc++文件(从其他文件夹复制),并建立软连接,指令如下:

# 这里我选取的是/usr/lib/x86_64-linux-gnu下的libstdc++文件

# 复制文件到/usr/lib文件夹下,注意文件位置

(base) delin@delin-OMEN:/usr/lib/x86_64-linux-gnu$ sudo cp libstdc++.so.6 /usr/lib
(base) delin@delin-OMEN:/usr/lib/x86_64-linux-gnu$ sudo cp libstdc++.so.6.0.32 /usr/lib

# 建立软链接

# 要先转到/usr/lib文件夹下

(base) delin@delin-OMEN:/usr/lib$ sudo ln -sf libstdc++.so.6.0.32 libstdc++.so.6
(base) delin@delin-OMEN:/usr/lib$ sudo ln -sf libstdc++.so.6 libstdc++.so

# 查看建立的链接

(base) delin@delin-OMEN:/usr/lib32$ ll libstdc*
lrwxrwxrwx 1 root root      14 Sep 16 22:41 libstdc++.so -> libstdc++.so.6
lrwxrwxrwx 1 root root      19 Jul 11 16:50 libstdc++.so.6 -> libstdc++.so.6.0.32
-rw-r--r-- 1 root root 2578460 Jul 11 16:50 libstdc++.so.6.0.32

之后再重新运行make PythonAPI,没有报错,问题解决

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OYDL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值