jjzjj

libstdc++

全部标签

c++ - 程序同时链接到 libstdc++ 和 libc++ 意味着什么?

最近,我看到一个C++程序在其动态部分(readelf-d)中同时列出了libstdc++和libc++。我很困惑,因为一个来自GNU,另一个来自LLVM,它们都是STL的实现。那么程序如何将两者联系起来呢?这是什么意思?它如何在链接时解析两者提供的符号(例如,std::string)? 最佳答案 例如,如果一个程序链接到一个标准库实现,并且链接到另一个静态库,则可能会发生这种情况。这不会引起问题,因为诸如std::string之类的名称被破坏成更长更复杂的东西,不会发生冲突。(这也是同名函数可以被重载并使用不同参数类型调用的原因,

c++ - 调用纯虚方法——交叉编译

我正在编写用于BeagleBoneBlack的基于事件的编程库,但遇到了一个奇怪的错误。当我使用完全相同的标志编译完全相同的代码时,我在基于ARM的处理器上收到以下错误,但当我运行为我的x86计算机编译的代码时却没有。$./missionControlpurevirtualmethodcalledpurevirtualmethodcalledpurevirtualmethodcalledterminatecalledrecursivelyterminatecalledrecursivelyAborted当我在笔记本电脑上编译和运行时,程序运行正常。这是我用来编译的命令(是的,我使用的是

c++ - 在 mex 下编译 vtk 示例时找不到 GLIBCXX

我一直在努力关注thisexample在Ubuntu11.10上使用mex在MATLAB中编译vtk。我使用的mex命令如下:mex-I/usr/include/vtk-5.6vtk_file.cpp-L/usr/lib/-lvtkFiltering-lvtkRendering-lvtkCommon编译后我有一个.mexa64文件。但是,当我尝试运行该文件时,我遇到了以下错误:InvalidMEX-file'/home/bill/Documents/MATLAB/vtk/vtk_file.mexa64':/usr/local/MATLAB/R2011b/bin/glnxa64/../.

c++ - 使用自定义构建的 gcc 时程序链接失败

我正在运行一个fedora21发行版,其中默认的gcc是4.9。我在/usr/local/gcc48中有一个自定义构建的gcc/g++4.8(例如,cuda需要gcc=现在,我获得了使用vtk库和其他库的源代码。如果我使用默认的gcc4.9,cmake和make可以正常工作。但是,当使用gcc48时,我得到:/usr/lib64/vtk/libvtkCommonDataModel.so.1:référenceindéfinievers«std::__throw_out_of_range_fmt(charconst*,...)@GLIBCXX_3.4.20»/lib64/libicuuc

c++ - 与 cuda 相关的 libstdc++.so.6 的链接器问题

今天我在链接我编译的cuda东西时遇到了问题。我有一个最新的debian测试w/2.6.32-3-amd64。我整天都在写我的代码。不时编译。没问题。但是在对代码进行了较小的更改后,我收到了以下错误:gcc-opaCUDA.ohistogram256.ohistogram64.omain.o-lrt-lm-lcudart-I.-I/data/cuda/include-I/data/cuda/C/common/inc-L/data/cuda/lib64/usr/bin/ld:main.o:undefinedreferencetosymbol'std::basic_ifstream>::c

c++ - 为什么从管道读取时 libc++ getline 会阻塞,而 libstdc++ getline 不会?

长话短说使用libc++版本的getline函数的程序在从管道读取输入时会阻塞,直到管道的缓冲区已满。NOTlibstdc++版本的getline函数也是如此:这里函数立即读取并返回一行输入作为一旦可用。我是否应该预料到libstdc++和libc++之间存在这种行为差异?[编辑:我不是在这里征求意见,我只是对管道了解不够,也不知道实现C++标准库的困难。对我来说,这种行为上的差异肯定是令人惊讶的,但也许有人更了解并且可以向我保证这种差异是可以预料的,也许这只是一个实现细节?]更重要的是,我可以做些什么来使libc++表现得像libstdc++那样?也就是说,getline函数不应该等

c++ - 混合 C++ ABI 以针对遗留库进行构建

情况是这样的,我有一个使用最新GCC(4.3.3)的C++代码库,但我需要链接到一个使用GCC3.2.3构建的旧库。没有可用的更新版本的库,我离不开它,而且它是封闭源代码,因此无法重建。这似乎是一个问题,因为GCC4.3.3和3.2.3之间存在ABI不兼容问题,因此我正在尝试查看解决此问题的选项。一些额外的细节:我可以使用-fabi-version=1重建代码库中的所有内容以获得正确的ABI版本,但我依赖于libstdc++版本6中的一些更新功能。代码库之外的所有C++库依赖项都是开源的,因此我可以根据需要重建它们,但这个库除外。许多无法重建或难以重建的C库依赖项。旧库似乎依赖于某些l

远程主机可能不符合 glibc 和 libstdc++ Vs Code 服务器的先决条件

vscode连接远程主机报错,原因官方已经公布过了,需要远程主机glibc>=2.28,所以Ubuntu18及以下版本没法再远程连接了,其他Linux系统执行ldd--version查看glibc版本自行判断。解决方案建议:不要再想升级glibc了问题巨多还麻烦人生苦短没那么多时间折腾先卸载当前版本vscode再下载安装这个版本(记得设置关闭自动更新预计时间5分钟省出来的时间好好享受人生

c++ - 使用 clang 选择特定的 libstdc++ 版本

我使用clang++来编译C++代码。我链接到gcc标准C++库libstdc++。但是,我在我的Ubuntu机器上安装了几个不同的libstdc++。当我运行clang++时,它使用了libstdc++的4.8安装:andy@andy:~$clang++-3.5-vUbuntuclangversion3.5.0-4ubuntu2~trusty2(tags/RELEASE_350/final)(basedonLLVM3.5.0)Target:i386-pc-linux-gnuThreadmodel:posixFoundcandidateGCCinstallation:/usr/bin/

c++ - MinGW 链接单个 EXE

我安装了MinGW,我只想将我的程序链接到一个EXE文件中。我希望能够将此EXE文件提供给某人,而不必担心所有libgcc_s_dw2-1.dll、libstdc++-6.dll或任何其他DLL。有没有办法将所有必需的库静态链接到一个EXE中?我正在Windows7上开发。 最佳答案 链接库时可以使用-static选项,对于libgcc和libstdc++使用以下选项:-static-libgcc-static-libstdc++ 关于c++-MinGW链接单个EXE,我们在StackO