- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个要在 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/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!