jjzjj

libstdc++

全部标签

c++ - 在纯二进制应用程序中静态链接 libstdc++ 和 libgcc 是否合法?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎与helpcenter中定义的范围内的编程无关。.关闭7年前。Improvethisquestion分发通过静态链接libstdc++和libgcc的未修改版本构建的纯二进制应用程序是否合法GCC套件版本4.7或更高?

c++ - libstdc++ 不识别标准库文字

我正在尝试使用std::literals命名空间中的文字来编译一个简单的程序,但是当我尝试编译它时Clang会生成错误。我要编译的代码:#include#includeusingnamespacestd::literals;intmain(){std::cout和编译命令:clang++-stdlib=libstdc++-std=c++1ya.cpp这导致了这个输出:a.cpp:4:22:error:expectednamespacenameusingnamespacestd::literals;~~~~~^a.cpp:8:29:error:nomatchingliteralopera

c++ - std::iterator_traits libstdc++ 和 libc++ 之间的分歧

给定:structIter{usingvalue_type=int;usingdifference_type=int;usingreference=int;usingpointer=int;usingiterator_category=int;};以下代码适用于libstc++,但无法针对libc++5.0.0进行编译:#include#includestatic_assert(std::is_same::iterator_category,Iter::iterator_category>::value,"");出现错误:error:nomembernamed'iterator_cat

c++ - 应用程序可以依赖两个不同版本的 libstdc++ 吗?

一个应用程序可以同时依赖两个不同版本的libstdc++吗?(例如:libstdc++5和libstdc++6)?场景是-一些二进制文件依赖于libstdc++6,但加载了一个依赖于libstdc++5的.so...这会有成功的机会吗? 最佳答案 最重要的是,您需要检查这两个版本的库是否二进制兼容。例如,G++3.3和3.4就不是。即使他们是:*可能存在名称修改问题*你不能进行跨模块分配/解除分配(无论如何都是一个坏主意)*您可能无法使用STL解决模块问题 关于c++-应用程序可以依赖两

c++ - 是否可以在 Mac OSX 10.6 中静态链接 libstdc++?

我正在尝试在其他MacOSX机器上运行我的C++程序,这些机器可能有较旧的libstdc++拷贝,但有所有其他工具。我试着按照这个approach,也在thisSOquestion中提到,即使它讨论了Linux设置。我有小程序try.cpp:#includeintmain(){inta=10;std::cout显然,如果我只是编译它,我会得到$/usr/bin/g++try.cpp$otool-La.outa.out:/usr/lib/libstdc++.6.dylib(compatibilityversion7.0.0,currentversion7.9.0)/usr/lib/lib

c++ - 未捕获的 std::exception 在核心中不正确的堆栈跟踪

这是我的代码:#include#includeusingnamespacestd;usingnamespacestd::tr1;usingnamespacestd::tr1::placeholders;classEvent{public:typedefstd::tr1::functionHandler;voidset(Handlerh){m_handler=h;}templatevoidset(T*obj,Fmemfn){set(std::tr1::bind(memfn,obj));}voidoperator()(){m_handler();}staticvoidfire(Event*

c++ - 两个使用不同 libstdc++ 版本的静态库

我正在开发一个使用旧版本libstdc++的项目。我刚刚介绍了一个静态链接的新库,它需要更新版本的libstdc++。我已经安装了两个版本的libstdc++。有没有办法用gcc和新库编译我的程序? 最佳答案 使用较新版本的libstdc++编译为thislibraryisforwardcompatible. 关于c++-两个使用不同libstdc++版本的静态库,我们在StackOverflow上找到一个类似的问题: https://stackoverflo

c++ - libstdc++ 和 libc++ : operator>> on bitset 行为差异

考虑以下代码:#include#include#includeintmain(intargc,char*argv[]){std::stringstreamstream;std::bitsetbitset(1);std::cout>bitset;std::cout在g++下用libstdc++编译,结果为:>g++bitset_empty.cpp-obitset_empty>./bitset_emptybefore=1after=1在clang++下用libc++编译,结果为:>clang++-stdlib=libc++bitset_empty.cpp-obitset_empty>./b

c++ - 无法在另一台使用 OS-X Leopard (10.5.8) 的 Mac 上运行在 OS-X Snow Leopard (10.6.7) 上编译的应用程序。返回 libstdc++.6.dylib 错误

我正在尝试在MaxOS-X上使用C++0x和Ogre移植一个C++项目,但我遇到了OS-X版本之间的可移植性问题。我成功地使用GCC4.6.0在MacOS-X10.6(SnowLeopard)上编译了我的项目(因为我需要C++0x)。这很难(可能因为我是OSX的新用户)但它最终编译它没有错误。我在Application.app包中包含了所有必需的组件、框架、插件等,它在这个MacOS-X10.6上运行良好但是当我在安装了MacOS-X10.5.8的旧笔记本电脑上传输项目时,我无法运行该应用程序。如果我双击.app,它会尝试启动,最后图标从菜单栏中消失,仅此而已。但是,如果我直接运行.a

c++ - 在运行时读取 libstdc++ 版本

我的申请受到abug的影响在旧版本的libstdc++中以相当严重的数据丢失方式。如何使用-rpath或LD_LIBRARY_PATH选择正确的库版本的补救措施是已知的,但对于部署和构建中的更改并不可靠。在我自己被咬了不止一次之后,我想停止痛苦并引入运行时检查以获取足够新的libstdc++版本。如果部署未能使用正确的版本,我如何访问该版本以打印一条大警告消息。请注意,我需要gcc8附带的次要版本libstdc++.so.6.0.25a.k.a.GLIBCXX_3.4.25。 最佳答案 这是一个linux程序,它简单地列出了它拥有的