草庐IT

c++ - 构建 gcc/libstdc++ 时使用了哪些配置选项?

在阅读了problem之后在DLL和EXE之间传递空std::string对象时,我担心用于构建我的gcc/libstdc++的配置选项。更具体地说,我想知道在./configure.期间是否使用了--enable-fully-dynamic-string我在WindowsXP上使用MinGW4.4.0。有人知道用于构建此版本的配置吗?对于任何安装的GNUgcc,是否有一种通用的方法可以找到这些信息?gcc手册没有给我任何关于这个主题的提示。感谢您的意见! 最佳答案 gcc-v打印出配置选项以及其他内容:$gcc-vUsingbui

c++ - 什么时候需要使用标志 -stdlib=libstdc++?

在使用gcc进行编译时,何时需要对编译器和链接器使用标志-stdlib=libstdc++?编译器会自动使用libstdc++吗?我在Ubuntu13.10上使用gcc4.8.2,我想使用c++11标准。我已经将-std=c++11传递给编译器。 最佳答案 在Linux上:一般来说,所有常用的linux发行版都会默认使用libstdc++,并且所有现代版本的GCC都带有支持C++11的libstdc++。如果要在此处编译c++11代码,请使用以下之一:g++-std=c++11input.cxx-oa.out(通常是GNU编译器)g

c++ -/usr/lib/x86_64-linux-gnu/libstdc++.so.6 : version CXXABI_1. 3.8' 未找到

事实证明,“makeinstall”-安装并暗示目标“install-target-libstdc++v3”的make目标实际上并不意味着您已准备好开始。我一直想知道我做错了什么,因为我认为这样的make目标会为我做到这一点。 最佳答案 将库的路径添加到LD_LIBRARY_PATH环境变量TL;DRGCC要求您在找不到正确版本时手动告诉它您的库的位置,这可以通过几种方式完成。一种是将其添加到LD_LIBRARY_PATH。exportLD_LIBRARY_PATH="/usr/local/lib64/:$LD_LIBRARY_PA

c++ - 你如何找到你的 linux 机器上安装了哪个版本的 libstdc++ 库?

我找到了以下命令:strings/usr/lib/libstdc++.so.6|grepGLIBC来自here.它似乎有效,但这是一种临时/启发式方法。是否有特定的命令可用于查询C++的库版本?还是我找到的方法是接受的方法? 最佳答案 要查找正在使用的库,您可以运行$/sbin/ldconfig-p|grepstdc++libstdc++.so.6(libc6)=>/usr/lib/libstdc++.so.6libstdc++3.4.0及以上版本的兼容版本列表由提供$strings/usr/lib/libstdc++.so.6|g

linux - 我应该使用 libc++ 还是 libstdc++?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭6年前。Improvethisquestion我正在使用c/c++为osx和linux开发命令行界面可执行文件。该项目将链接到opencv。我应该使用libc++还是libstdc++? 最佳答案 我会为每个操作系统使用native库,即GNU/Linux上的libstdc++和MacOSX上的libc++。libc++在GNU/Linux上不是100%完整的,当libstdc++

c++ - 使用带有 clang++ -stdlib=libc++ 的 libstdc++ 编译库

我在MacOSX(10.8.2)下使用C++工作,最近我想出了使用C++11功能的需求,这些功能可通过使用libc++stdlib的clang++编译器获得。但是,我还需要使用一些针对libstdc++(来自MacPorts)编译和链接的遗留库。这样做时,我遇到了链接错误,因为使用例如std::string的旧库的header需要针对std::__1::进行解析basic_string(即std::string的libc++实现)而不是std::basic_string实现。有没有办法在开发中混合使用这两个库(例如,通过使用一些预处理器标志?) 最佳答案

c++ - 静态链接 libstdc++ : any gotchas?

我需要将一个基于Ubuntu12.10和GCC4.7的libstdc++构建的C++应用程序部署到运行Ubuntu10.04的系统上,该系统带有相当旧版本的libstdc++。目前,我正在使用-static-libstdc++-static-libgcc进行编译,正如这篇博文所建议的那样:Linkinglibstdc++statically.作者警告不要在静态编译libstdc++时使用任何动态加载的C++代码,这是我尚未检查的内容。尽管如此,到目前为止一切似乎都很顺利:我可以在Ubuntu10.04上使用C++11功能,这正是我所追求的。我注意到这篇文章是从2005年开始的,从那时起

c++ -/usr/lib/libstdc++.so.6 : version `GLIBCXX_3.4.15' not found

如何在Ubuntu中获取GLIBCXX_3.4.15?我无法运行我正在编译的某些程序。当我这样做时:strings/usr/lib/libstdc++.so.6|grepGLIBC我明白了:GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLI

c++ - ctags 忽略 libc6、libstdc++ 和 boost 的列表

我在vim和OmniCppComplete中使用ctags插入。目前,在生成我的标签时,我会为每个库单独执行此操作。对于libc6,我在一个名为libc6-ignore的文件中使用以下token/宏列表,以便在处理期间忽略:__attribute____attribute_deprecated____attribute_format_arg____attribute_format_strfmon____attribute_malloc____attribute_noinline____attribute_pure____attribute_used____attribute_warn_

c++ - ctags 忽略 libc6、libstdc++ 和 boost 的列表

我在vim和OmniCppComplete中使用ctags插入。目前,在生成我的标签时,我会为每个库单独执行此操作。对于libc6,我在一个名为libc6-ignore的文件中使用以下token/宏列表,以便在处理期间忽略:__attribute____attribute_deprecated____attribute_format_arg____attribute_format_strfmon____attribute_malloc____attribute_noinline____attribute_pure____attribute_used____attribute_warn_