gpt4 book ai didi

c++ - 链接到特定的 stdc++ 库

转载 作者:太空狗 更新时间:2023-10-29 23:02:58 27 4
gpt4 key购买 nike

我有一个要在 Linux 下构建的 C++ 应用程序,它需要链接到第三方共享库,但是这个库是用最新版本的 GCC/glibc (4.8.3/2.18) 构建的).当我尝试使用较新版本的 GCC/glibc (4.4.7/2.12) 构建我的应用程序时,构建的链接阶段失败,ld 提示 undefined reference ,这些引用是对较新的 libstdc++ 中定义的函数的引用。

第三方为我提供了一个预编译版本的 libstdc++ 和 libgcc_s 以与该库一起使用,但我如何在我的构建中使用这些版本?

如何告诉 GCC 使用预编译库而不是系统库,同时仍然使用系统 GCC?

我已经尝试使用“-nodefaultlibs”选项并包括“-lstdc++”和“-L”选项,但它似乎对 undefined reference 没有影响。

我在链接过程中遇到的错误示例:

对 std::__throw_bad_function_call()@GLIBCXX_3.4.14 的 undefined reference
对 std::length_error::~length_error()@GLIBCXX_3.4.15' 的 undefined reference

最佳答案

通过在链接命令的对象列表中指定 libstdc++ 和 libgcc_s 共享对象的完整路径(例如/home/mike/Downloads/libstdc++.so.6),我成功构建了应用程序。这样做我不需要使用任何额外的选项,例如“-nostdlibs”,只需要确保链接的共享对象在运行应用程序时可通过 LD_LIBRARY_PATH 获得。

关于c++ - 链接到特定的 stdc++ 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891569/

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