在 AWS EC2 实例上使用 clang 进行编译时"DSO missing from command line"



我正试图在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

我能为百胜找到的唯一东西是libcxx(我安装了它(。我纠结于下一步该做什么。。。

编辑#1:

我在这里安装了来自RPM的libcxxabilibcxxabi-devel软件包:https://fedora.pkgs.org/30/fedora-x86_64/libcxxabi-8.0.0-1.fc30.x86_64.rpm.html但它仍然错误。。。

也可以尝试安装libc++abi。

_ZTVN10__cxxabiv117__class_type_infoE是"__cxxabiv1::__class_type_info的vtable"。

最新更新