libstdc的静态链接

目前我是C的初学者 . 我在linux(chakra linux)中编写我的程序,我有以下问题:

我需要使用C 11的一些功能,所以我编译为 c++ -std=c++11 test.cpp ,它在我的笔记本电脑中工作正常 . 然后我拿起 a.out 文件并将其上传到我的大学集群中,我尝试运行它,但是我收到了消息

./a.out: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by ./a.out)
./a.out: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.13' not found (required by ./a.out)

在互联网上看似乎是一个解决方法是在我的笔记本电脑中编译

c++ -std=c++11  test.cpp -static-libstdc++ -static-libgcc

然后尝试在群集中运行代码 . 我确实试过了,得到了消息

./a.out: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./a.out)

我也尝试在集群中编译,但它不起作用,我认为这与集群编译器是gcc 4.3.2或intel icpc(ICC)13.1.1这一事实有关 .

我想知道是否有任何方法可以解决这个问题,或者我是否做错了什么

提前致谢

回答(0)