我遇到的DSO missing from command line

首先,使用C++代码编译了一个静态链接库libmy.a. 然后在另外一个C语言的项目中去调用此静态库,结果出现如下错误:

/usr/bin/ld: libmy.a(message_mm.o): undefined reference to symbol ‘_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3’
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
makefile:36: recipe for target ‘main’ failed
make: * [main] Error 1

在C语言的项目中,makefile使用的是gcc来编译和链接,因此怀疑是C与C++链接时的兼容问题,于是在C项目中改用g++,果然没有问题了。

猜你喜欢

转载自blog.csdn.net/ygd11/article/details/81010382
今日推荐