链接到已在构建系统上使用的libstdc ++版本

时间:2015-07-21 21:50:42

标签: c++ linux gcc

我准备了一个包含通用lambda的简单c ++ 14示例:

auto glambda = [](auto a) { return a; };

我使用gcc 4.9.2(libstdc ++。so.6.0.20)来构建该程序。这是 ldd 输出:

linux-vdso.so.1 =>  (0x00007ffca3d14000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcc6062d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcc60417000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcc601f9000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcc5fe2f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcc5fb27000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcc6093c000)

当我在配备了gcc 4.6.3(libstdc ++。so.6.0.16)的其他系统(虚拟机)上运行该程序时,它可以运行。有些程序没有在另一个系统上启动,因为没有合适的libstdc ++。我猜测我的程序不起作用,因为它使用了gcc 4.6.3不支持的c ++ 14功能。它是如何工作的 ?当程序需要链接到已在构建系统上使用的libstdc ++时?

0 个答案:

没有答案