系统: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,没有报错,问题解决