gpt4 book ai didi

linux - 升级 GCC 后 MySQL++ 库不工作

转载 作者:太空宇宙 更新时间:2023-11-04 09:09:44 26 4
gpt4 key购买 nike

我正在使用 mysql++ 库并使用 GCC 3.3.4 进行编译。
那个 GCC 版本有一些错误,所以我升级到 GCC 3.4.6。
升级 GCC 后,我重建了 mysql++ 并重新编译了我的程序。但是现在我收到了段错误。

我收到以下消息:

./mysqlTest: Symbol `_ZTVSt15basic_stringbufIcSt11char_traitsIcESaIcEE' has different size in shared object, consider re-linking.
Segmentation fault

有什么我必须重建、重新链接或其他任何东西才能让我的应用程序再次运行吗??
mysql C API 怎么样? mysql++ 是它的包装器。
应该重建 mysql C API 还是什么?

请帮忙,我不知道该怎么办。我需要完成这项工作。

最佳答案

将 C++ 标准库从 GCC 3.3 升级到 GCC 3.4 后,如果您的程序使用它们,您必须重新编译链接到它的所有库,同时还直接链接到标准 C++ 库。在你的情况下,考虑到你的后续行动,libdb_cxx-4.2 有问题,所以重建 Berkeley DB 4.2。基本上,mysqlTest 链接到新的 C++ 标准库和 Berkeley DB,但 Berkeley DB 链接到旧库。链接器将从两个库中提取符号,但其中一些库的内联存储类可能已更改,Berkeley DB 会感到困惑。

要检查您使用的库,请对二进制文件运行 ldd,然后对列表中的每个 C++ 库运行 ldd

关于linux - 升级 GCC 后 MySQL++ 库不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/216197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com