首页 > 解决方案 > 在 AWS EC2 实例上使用 clang 编译时“命令行中缺少 DSO”

问题描述

我正在尝试在 EC2 实例上编译 C++ 程序以用于 aws lambda。我正在使用make文件,然后输入

make -f Makefile

这似乎构建了以下表达式:

clang++ -std=c++11 -stdlib=libc++ -L/usr/lib/opencas -L/usr/lib -lTKBRep -lTKG2d -lTKG3d -lTKGeomBase -lTKMath -lTKMesh -lTKSTEP -lTKSTEP209 -lTKTopAlgo -lTKSTEPAttr -lTKSTEPBase -lTKSTL -lTKXSBase -lTKernel  -o step2stl lib.o main.o

然后我收到以下错误:

/usr/bin/ld: lib.o: undefined reference to symbol '_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3'
//usr/lib64/libstdc++.so.6: error adding symbols: DSO missing from command line
clang-7: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [step2stl] Error 1

我四处搜索,但我发现的唯一解决方法是将 libc++ 添加到表达式中,但它似乎已经存在。

我已经在 Ubuntu 上构建了同样的程序没有问题,但我必须安装libc++-devlibc++abi-dev

我唯一能找到的 yum 是libcxx(我安装的)。我被困在下一步该怎么做...

编辑#1:

我在这里从 RPM安装libcxxabi和打包: https ://fedora.pkgs.org/30/fedora-x86_64/libcxxabi-8.0.0-1.fc30.x86_64.rpm.html 但它仍然错误...libcxxabi-devel

标签: linuxamazon-ec2clangclang++libc++

解决方案


也尝试安装 libc++abi。

_ZTVN10__cxxabiv117__class_type_infoE是“__cxxabiv1::__class_type_info 的 vtable”。


推荐阅读