标签: libstdc++

VS Code 远程 ssh 缺少 GLIBCXX 和 GLIBC

我正在尝试使用 VS Code 的通过 ssh 功能进行远程开发。连接到远程服务器时我遇到:

Missing GLIBCXX >= 3.4.18!
>Found versions 3.4.1
> 3.4.2
> ...
> 3.4.13

Missing GLIBC >= 2.17!
Found version ldd (GNU libc) 2.12
Run Code Online (Sandbox Code Playgroud)

在遥控器上,我加载模块gcc/7.3.0并确认版本:

gcc --version
> gcc (GCC) 7.3.0
Run Code Online (Sandbox Code Playgroud)

并且还发现:

ldd --version
> ldd (GNU libc) 2.12
Run Code Online (Sandbox Code Playgroud)

/lib我找到libc-2.12.so并发现GLIBC的最大版本是2.12:

strings libc-2.12.so | grep GLIB
> GLIBC_2.0
> GLIBC_2.1
> ...
> GLIBC_2.12
Run Code Online (Sandbox Code Playgroud)

但是,我可以在系统的另一个位置找到所需版本的库/usr/lots/of/directories/gcc/x86_64-pc-linux-gnu/7.3.0

strings libstdc++.so.6.0.24 | grep GLIB
> GLIBCXX_3.4
> ...
> GLIBCXX_3.4.24
> ... …
Run Code Online (Sandbox Code Playgroud)

libc libstdc++ visual-studio-code vscode-remote

7
推荐指数
1
解决办法
6543
查看次数

如何在 Centos 7 上安装较新版本的 libstdc++

我正在运行一个应用程序,它向我抛出一个错误:

“需要 C++ 标头‘string_view’。您需要在主机系统上安装更新的 libstdc++。”

有人可以指导我如何在我的计算机上获取更新版本的“libstdc++”吗?

谢谢

c++ centos libstdc++ centos7

7
推荐指数
1
解决办法
2万
查看次数

libstdc++.so.6:在 Linux 上找不到版本“GLIBCXX_3.4.26”

我试图在 rstudio 中加载 Seurat 包并收到此错误

\n
Error: package or namespace load failed for \xe2\x80\x98Seurat\xe2\x80\x99 in dyn.load(file, DLLpath = DLLpath, ...):\n unable to load shared object '/wdata/msmuhammad/workbench/miniconda3/envs/test2/lib/R/library/Rcpp/libs/Rcpp.so':\n  /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /wdata/msmuhammad/workbench/miniconda3/envs/test2/lib/R/library/Rcpp/libs/Rcpp.so)\n
Run Code Online (Sandbox Code Playgroud)\n

我在 conda 环境中使用 rstudio

\n

我发现了一个关于没有版本“GLIBCXX_3.4.26”的相同问题的问题。这导致我运行这个命令

\n
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX \n
Run Code Online (Sandbox Code Playgroud)\n

我得到了这个:

\n
GLIBCXX_3.4\nGLIBCXX_3.4.1\nGLIBCXX_3.4.2\nGLIBCXX_3.4.3\nGLIBCXX_3.4.4\nGLIBCXX_3.4.5\nGLIBCXX_3.4.6\nGLIBCXX_3.4.7\nGLIBCXX_3.4.8\nGLIBCXX_3.4.9\nGLIBCXX_3.4.10\nGLIBCXX_3.4.11\nGLIBCXX_3.4.12\nGLIBCXX_3.4.13\nGLIBCXX_3.4.14\nGLIBCXX_3.4.15\nGLIBCXX_3.4.16\nGLIBCXX_3.4.17\nGLIBCXX_3.4.18\nGLIBCXX_3.4.19\nGLIBCXX_3.4.20\nGLIBCXX_3.4.21\nGLIBCXX_3.4.22\nGLIBCXX_3.4.23\nGLIBCXX_3.4.24\nGLIBCXX_3.4.25\nGLIBCXX_DEBUG_MESSAGE_LENGTH\n
Run Code Online (Sandbox Code Playgroud)\n

因此,它没有所需的版本,我无法从终端安装 libstdc++,因为该步骤需要 sudo 命令,而我不是 sudo 者之一,而且我一直被拒绝许可。

\n

乌班图18.04.6

\n

Linux 4.15.0-154-通用

\n

那么除了sudo命令之外还有什么办法可以解决这个问题呢?

\n

我在 conda 环境中尝试了这个命令

\n
strings msmuhammad/workbench/miniconda3/envs/test2/lib/libstdc++.so.6 | grep GLIBCXX\n
Run Code Online (Sandbox Code Playgroud)\n

我得到了这个

\n
GLIBCXX_3.4\nGLIBCXX_3.4.1\nGLIBCXX_3.4.2\nGLIBCXX_3.4.3\nGLIBCXX_3.4.4\nGLIBCXX_3.4.5\nGLIBCXX_3.4.6\nGLIBCXX_3.4.7\nGLIBCXX_3.4.8\nGLIBCXX_3.4.9\nGLIBCXX_3.4.10\nGLIBCXX_3.4.11\nGLIBCXX_3.4.12\nGLIBCXX_3.4.13\nGLIBCXX_3.4.14\nGLIBCXX_3.4.15\nGLIBCXX_3.4.16\nGLIBCXX_3.4.17\nGLIBCXX_3.4.18\nGLIBCXX_3.4.19\nGLIBCXX_3.4.20\nGLIBCXX_3.4.21\nGLIBCXX_3.4.22\nGLIBCXX_3.4.23\nGLIBCXX_3.4.24\nGLIBCXX_3.4.25\nGLIBCXX_3.4.26\nGLIBCXX_3.4.27\nGLIBCXX_3.4.28\nGLIBCXX_3.4.29\nGLIBCXX_DEBUG_MESSAGE_LENGTH\n_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4\n_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@@GLIBCXX_3.4.5\n_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@GLIBCXX_3.4\n_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5\nGLIBCXX_3.4.21\nGLIBCXX_3.4.9\n_ZSt10adopt_lock@@GLIBCXX_3.4.11\nGLIBCXX_3.4.10\nGLIBCXX_3.4.16\nGLIBCXX_3.4.1\n_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@GLIBCXX_3.4\nGLIBCXX_3.4.28\n_ZNSs7_M_copyEPcPKcm@GLIBCXX_3.4\nGLIBCXX_3.4.25\n_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv@@GLIBCXX_3.4.5\n_ZNSs7_M_moveEPcPKcm@@GLIBCXX_3.4.5\n_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4\n_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4\n_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@@GLIBCXX_3.4.5\n_ZNSs4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4\n_ZSt10defer_lock@@GLIBCXX_3.4.11\n_ZN10__gnu_norm15_List_node_base4swapERS0_S1_@@GLIBCXX_3.4\n_ZNSs9_M_assignEPcmc@@GLIBCXX_3.4.5\n_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@@GLIBCXX_3.4.5\n_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5\n_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@GLIBCXX_3.4\nGLIBCXX_3.4.24\n_ZNVSt9__atomic011atomic_flag12test_and_setESt12memory_order@@GLIBCXX_3.4.11\nGLIBCXX_3.4.20\n_ZNSt11char_traitsIwE2eqERKwS2_@@GLIBCXX_3.4.5\nGLIBCXX_3.4.12\n_ZNSi6ignoreEv@@GLIBCXX_3.4.5\nGLIBCXX_3.4.2\n_ZNSt11char_traitsIcE2eqERKcS2_@@GLIBCXX_3.4.5\nGLIBCXX_3.4.6\nGLIBCXX_3.4.15\n_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5\n_ZNSs9_M_assignEPcmc@GLIBCXX_3.4\nGLIBCXX_3.4.19\n_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4\n_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@GLIBCXX_3.4\nGLIBCXX_3.4.27\n_ZN10__gnu_norm15_List_node_base7reverseEv@@GLIBCXX_3.4\n_ZN10__gnu_norm15_List_node_base4hookEPS0_@@GLIBCXX_3.4\n_ZNSt11char_traitsIwE2eqERKwS2_@GLIBCXX_3.4\n_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@GLIBCXX_3.4\n_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm@@GLIBCXX_3.4.5\nGLIBCXX_3.4.23\nGLIBCXX_3.4.3\nGLIBCXX_3.4.7\n_ZNSi6ignoreEl@@GLIBCXX_3.4.5\n_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw@@GLIBCXX_3.4.5\n_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4\n_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5\n_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm@@GLIBCXX_3.4.5\nGLIBCXX_3.4.18\n_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm@GLIBCXX_3.4\n_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@@GLIBCXX_3.4.5\n_ZSt15future_category@@GLIBCXX_3.4.14\n_ZNSi6ignoreEl@GLIBCXX_3.4\nGLIBCXX_3.4.29\n_ZNSt11char_traitsIcE2eqERKcS2_@GLIBCXX_3.4\n_ZNKSs15_M_check_lengthEmmPKc@GLIBCXX_3.4\n_ZN10__gnu_norm15_List_node_base8transferEPS0_S1_@@GLIBCXX_3.4\n_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@GLIBCXX_3.4\n_ZNVSt9__atomic011atomic_flag5clearESt12memory_order@@GLIBCXX_3.4.11\n_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5\n_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv@GLIBCXX_3.4\n_ZNSs7_M_moveEPcPKcm@GLIBCXX_3.4\n_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl@GLIBCXX_3.4\n_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw@@GLIBCXX_3.4.5\n_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc@GLIBCXX_3.4\n_ZNKSs11_M_disjunctEPKc@@GLIBCXX_3.4.5\n_ZN10__gnu_norm15_List_node_base6unhookEv@@GLIBCXX_3.4\nGLIBCXX_3.4.22\n_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv@@GLIBCXX_3.4.5\n_ZNSi6ignoreEv@GLIBCXX_3.4\n_ZNSs7_M_copyEPcPKcm@@GLIBCXX_3.4.5\nGLIBCXX_3.4.8\nGLIBCXX_3.4.13\n_ZSt11try_to_lock@@GLIBCXX_3.4.11\n_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv@@GLIBCXX_3.4.5\nGLIBCXX_3.4.17\nGLIBCXX_3.4.4\n_ZNKSs15_M_check_lengthEmmPKc@@GLIBCXX_3.4.5\n_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4\n_ZNSs4_Rep26_M_set_length_and_sharableEm@@GLIBCXX_3.4.5\nGLIBCXX_3.4.26\n_ZNKSs11_M_disjunctEPKc@GLIBCXX_3.4\n …
Run Code Online (Sandbox Code Playgroud)

linux r libstdc++

7
推荐指数
2
解决办法
3万
查看次数

两位数年份的 get_time 解析错误

当格式包含“%y”或“%Y”时,std::get_time 的行为方式相同,在这两种情况下,它都会尝试读取四位数年份。我做错了什么还是一个错误?

示例代码:

#include <iostream>
#include <iomanip>

void testDate(const char *format,const char *date)
{
    std::istringstream ds(date);

    std::tm tm = {};
    ds >> std::get_time(&tm,format);
    std::cout<<date<<" parsed using "<<format<<" -> Year: "<<tm.tm_year+1900<<" Month: "<<tm.tm_mon<<" Day: "<<tm.tm_mday<<std::endl;
}

int main()
{
    testDate("%y%m%d","101112");
    testDate("%Y%m%d","101112");
    testDate("%y%m%d","20101112");
    testDate("%Y%m%d","20101112");
    
    
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

输出:

101112 parsed using %y%m%d -> Year: 1011 Month: 11 Day: 0
101112 parsed using %Y%m%d -> Year: 1011 Month: 11 Day: 0
20101112 parsed using %y%m%d -> Year: 2010 Month: 10 Day: 12
20101112 …
Run Code Online (Sandbox Code Playgroud)

c++ gcc clang libstdc++

7
推荐指数
1
解决办法
418
查看次数

"程序入口点_ZNSt8_detail15_List_node_base7_M_hookEPS0_无法位于动态链接库libstdc -6.dll中."

有一个小问题.我有c ++代码,它链接到一些库.我以前(原始)exe源自源代码,并且在第一台机器上运行完美.还有第二台机器,在那里我处理源代码,更改它等.在第二台机器上,该源代码的构建工作正常,当我复制second.exe并尝试在第一台机器上运行它时萌芽它显示错误消息

"程序入口点_ZNSt8_detail15_List_node_base7_M_hookEPS0_无法位于动态链接库libstdc ++ - 6.dll中."

有一点,second.exe被复制到与original.exe相同的文件夹中,所以它应该看到ddl'因为原来的dll与original.exe在同一个文件夹中,不应该吗?它是用MinGW编译的,在NetBeans和项目属性中工作,有库添加(通过添加库文件)但是libstdc ++ - 6.dll没有添加.libstdc ++ - 6.dll在original.exe的文件夹中

谢谢

c++ mingw libstdc++

6
推荐指数
1
解决办法
1万
查看次数

某些标准库类与clang ++的链接器错误

我面临一个奇怪的链接器问题clang ++ - 它能够找到std :: string类的定义,而不是std :: ios_base :: failure class的定义.

$ cat foo.cpp
#include <string>
#include <iostream>

int main()
{
   std::string msg = "hello world";
   std::ios_base::failure f(msg);
   std::cout << msg << std::endl;
   return 0;
}

$ clang++ foo.cpp
/tmp/foo-b77625.o: In function `main':
foo.cpp:(.text+0x4d): undefined reference to `std::ios_base::failure::failure(std::__cxx11::basic_string<char,  std::char_traits<char>, std::allocator<char> > const&)'
clang-3.7: error: linker command failed with exit code 1 (use -v to see  invocation)

$ clang++ --version
clang version 3.7.0 (trunk 239466)
Target: x86_64-unknown-linux-gnu
Thread model: posix
Run Code Online (Sandbox Code Playgroud)

我注意到如果我评论std …

c++ libstdc++ clang++

6
推荐指数
1
解决办法
2390
查看次数

如何在编译时测试libstdc ++的版本,而不是GCC?

我试图在版本4.9.0之前使用GCC分发的版本中测试libstdc++因为std::regex已实现但很大程度上已破坏的版本libstdc++.

注意:

有没有可靠的方法来测试它的版本libstdc++不依赖于使用GCC我的编译器?

c++ gcc clang libstdc++

6
推荐指数
1
解决办法
834
查看次数

当使用("some content",std :: ios :: in | std :: ios :: ate)构造std :: stringstream时,tellg()的预期行为是什么?

我有以下代码令我感到惊讶(使用libstdc ++ 4.8)...

#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main() {
    std::string s("some content");
    std::stringstream ss(s, std::ios::in|std::ios::ate);
    std::istream& file = ss;
    //ss.clear(); Makes no difference...
    std::cout << "tellg() pos: " << file.tellg() << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

...具有以下输出.

tellg()pos:0

此行为与使用std :: ifstream(std :: ios :: ate)时不同.

  • 这种行为是正确/预期的吗?
  • 尽管打开了吃饭,是否需要明确地寻求(0,std :: ios :: end)?
  • 清除国家并没有什么不同.
  • 请注意,字符串包含内容.

c++ iostream libstdc++ c++11

6
推荐指数
1
解决办法
344
查看次数

排序算法是否应该在比较函数中传递相同的元素

std :: sort的libcxx(llvm版本的c ++标准库)使用相同的元素调用比较谓词,即比较函子的两个参数都指向要排序的序列中的相同位置.一个简化的例子来说明这一点.

$ cat a.cc
#include <algorithm>
#include <vector>
#include <cassert>

int main(int argc, char** argv) {
  int size = 100;
  std::vector<int> v(size);

  // Elements in v are unique.
  for (int i = 0; i < size; ++i)
    v[i] = i;

  std::sort(v.begin(), v.end(),
            [&](int x, int y) { assert(x != y); return x < y; });

  return 0;
}

$ clang++ -std=c++11 -stdlib=libc++ a.cc -o a.out
$ ./a.out
a.out: a.cc:14: auto main(int, char **)::(anonymous class)::operator()(int, int) const: Assertion …
Run Code Online (Sandbox Code Playgroud)

c++ sorting algorithm libstdc++ libc++

6
推荐指数
1
解决办法
280
查看次数

使用从`std :: tuple`派生的元素在`std :: tuple`上调用`std :: get` - 形成错误?

struct Y { };
struct X : std::tuple<Y> { };

int main()
{
    std::get<0>(std::make_tuple(X{}));
}
Run Code Online (Sandbox Code Playgroud)

在wandbox上


clang++当使用libc ++时,上面的代码编译并按预期工作.

上面的代码失败,都编译clang++g++使用时的libstdc ++,错误如下:

include/c++/7.0.1/tuple:1302:36: 
error: no matching function for call to ‘__get_helper<0>(std::tuple<X>&)’
    { return std::__get_helper<__i>(__t); }
            ~~~~~~~~~~~~~~~~~~~~~~^~~~~

include/c++/7.0.1/tuple:1290:5: 
note: candidate: template<long unsigned int __i, class _Head, class ... _Tail> 
                constexpr _Head& std::__get_helper(std::_Tuple_impl<_Idx, _Head, _Tail ...>&)
    __get_helper(_Tuple_impl<__i, _Head, _Tail...>& __t) noexcept
    ^~~~~~~~~~~~

include/c++/7.0.1/tuple:1290:5: 
note:   template argument deduction/substitution failed:
include/c++/7.0.1/tuple:1302:36: 
note:   ‘std::_Tuple_impl<0, _Head, _Tail ...>’ is …
Run Code Online (Sandbox Code Playgroud)

c++ libstdc++ language-lawyer c++11 stdtuple

6
推荐指数
1
解决办法
551
查看次数