【发布时间】:2013-11-18 15:25:09
【问题描述】:
我最近从头开始构建 libc++,因为我的项目需要一些 libstdc++ 中尚未实现的功能。
我尝试用 line 编译位于 src/main.cpp 中的 hello world 程序
clang -Wall -stdlib=libc++ -std=c++11 -c src/main.cpp -obuild/main.o
构建成功
然后我把它链接到
clang -lc++ build/main.o -o qasix
链接也成功了。 但是当我用
运行程序时./qasix
我收到以下错误:
./qasix: symbol lookup error: /usr/local/lib/libc++.so.1: undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE
我想知道为什么会发生这种情况以及如何解决它。
如果有帮助的话,我正在使用 Xubuntu 13.10。
PS:昨天突然出现这个问题。早期的其他 libc++ 程序可以正常编译。 这开始于我使用 -g 标志对程序进行调试构建并且它编译并运行良好,但所有后来的程序都抱怨这个符号查找失败。请帮忙。
【问题讨论】:
-
solarianprogrammer.com/2013/01/17/… 这些是我在仅构建 libc++ 时遵循的说明。我从 llvm.orgs apt repo 安装的 Clang
-
您是否在这些事件之间更新了您的 libc++ 安装(早期版本成功,失败后的一切)?
-
顺便说一句,
_ZTVN10__cxxabiv120__si_class_type_infoE解开“vtable for __cxxabiv1::__si_class_type_info”
标签: c++ shared-libraries clang libc++