- 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/
程序: #include #include int main() { std::stringstream ss; ss , std::allocator >::_M_sync(st
为什么我会遇到这些链接错误? 这是一个简短的链接错误示例,有数百个类似的错误: /tmp/main-NtNkRQ.o: In function __cxx_global_var_init': /hom
本机环境:win10系统 64位 vs2017 最近码代码时偶然发现了bits/stdc++.h这个头文件(万能头文件),基本上所有的代码只要用了这个头文件就不再写其他头文件了。 看到它就仿佛开
我有一个用 C++ 编写的库,但没有使用 stdc++ 库,因为它在某些平台上不可用。 但是,我的 libsmartrest.la 中仍然有 stdc++ 库依赖项,这使得依赖于该库的所有库都无法链接
我正在开发一个大约有 50 个依赖项的 iOS 项目。几乎所有这些都是用 cocoapods 管理的。有些是开源代码,有些是动态框架,有些是静态框架。 在这个项目中,我想利用 iOS 12 的新 AP
我有一个要在 Linux 下构建的 C++ 应用程序,它需要链接到第三方共享库,但是这个库是用最新版本的 GCC/glibc (4.8.3/2.18) 构建的).当我尝试使用较新版本的 GCC/gli
我正在使用 Ubuntu 并尝试使用 synaptic 来安装其中包含“GLUT”一词的所有内容以及 SDL 和 opengl 。但仍然是一个简单的程序无法编译。它显示了这个: opengl1.cpp
我用我的代码发布了一个问题,其唯一的#include指令如下: #include 我的老师告诉我要这样做,但是在评论部分,我被告知我不应该这样做。 为什么? 最佳答案 在Stack Overflow
这个问题在这里已经有了答案: Why should I not #include ? (9 个回答) 关闭 6 年前。 我在 C++ 上创建了一个基本的井字游戏,我在不包含 bits/stdc++
是否可以在 Linux 上将我的程序与 libpthreads 和 libstdc++ 静态链接? 最佳答案 是的,按照正常情况使用 -static。 关于linux - 与 pthreads 和 s
这个问题在这里已经有了答案: Why should I not #include ? (9 个回答) 关闭 4 年前。 #include #include #include //#includ
当我尝试编译我的项目时,我遇到了这个错误: g++ -c -pipe -std=c++11 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORT
我试图在我的 C++ 代码中包含头文件 bits/stdc++,但编译器似乎不支持它。有什么办法让它工作吗? 我使用 OS X Yosemite 10.10.2 和 Xcode 6.1.1。 最佳答案
我用我的代码发布了一个问题,其唯一的 #include 指令如下: #include 我的老师告诉我这样做,但在评论部分我被告知我不应该这样做。 为什么? 最佳答案 包括在 Stack Overfl
我有动态链接 stdc++ 的库。我想用新文件创建新的共享库,链接它们并静态链接 libstdc++。 我试图将 -static-libstdc++ 添加到编译中,但它不起作用。我检查了 ldd,我的
我在配置 iOS 项目时遇到困难,该项目使用链接到 gcc 使用的旧 libstdc++ 的静态库。该库是 32 位和 64 位的。 有 6 个库(例如 libssl.a)是 32 位的,必须更新。如
我在这里试过: http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/index.html 我找到了 new.h,但没有找到实现它的代码。 谢谢
我有一个使用 SFML 的 CMake 项目,它运行良好,但在更新到 Xcode 10 之后,找不到 CMake 寻找的所有编译器文件。 clang:警告:libstdc++ 已弃用;移动到 libc
每当使用 arm-none-eabi(-g++、-gcc 和 -c++ 构建 C++ 源代码时code>) 包含一个 stdlib header ,gcc 表示找不到该文件: 测试.cpp: #inc
我正在尝试向需要使用 C++ 库的大型 C 项目添加一些代码。 C++ 库使用标记为 extern "C"的函数提供了一个包装器,该函数提供对库功能的访问 //Some C++ library //m
我是一名优秀的程序员,十分优秀!