1.在vs上实现远程调试Linux c++程序:https://www.jianshu.com/p/8b51a795cb92。
2.调试需要c++11,升级redhat上的gcc版本,虚拟机gcc版本4.4.7,使用yum只能升级到4.4.7,所以需要手动完成:
【gcc升级步骤】 1.下载gcc 4.8.5的压缩包 下载地址:http://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2 2.找个目录存放,并解压 #tar -jxvf gcc-4.8.5.tar.bz2 3.进入目录,执行命令 这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力。 # cd gcc-4.8.5 # ./contrib/download_prerequisites 4.建立一个目录供编译出的文件存放 # mkdir gcc-build-4.8.5 # cd gcc-build-4.8.5 5.生成Makefile文件 # ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 6.执行make,此处耗时大约1小时。不建议使用文献[2]提到的 make -j4,可能报错 # yum groupinstall "Development Tools" # make 7.执行安装 # make install 8.完成后,测试 # reboot//请先重启,切记! # gcc -v # g++ -v 【库升级】 别以为gcc升级成功了,就可以直接编程c++11的程序了。还需要进行库升级。源码编译升级安装了gcc后,编译程序或运行其它程序时,有时会出现类似: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题。这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决。[3] 1.检查 # strings /usr/lib64/libstdc++.so.6 | grep GLIBC 2.找到 gcc 4.8.5 最新的库文件 # find / -name "libstdc++.so*" /usr/lib64/libstdc++.so.6.0.13 /usr/lib64/libstdc++.so.6 /usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so /usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so /usr/lib/vmware-tools/lib64/libstdc++.so.6 /usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6 /usr/lib/vmware-tools/lib32/libstdc++.so.6 /usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6 /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo /usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo /usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py /usr/local/lib64/libstdc++.so.6.0.19 /usr/local/lib64/libstdc++.so.6 /usr/local/lib64/libstdc++.so /usr/local/lib64/libstdc++.so.6.0.19-gdb.py /opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so /opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /opt/gcc-4.8.5/gcc-build-4.8.5/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so /opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /opt/gcc-4.8.5/gcc-build-4.8.5/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so 上面粗体加黑的libstdc++.so.6.0.19,就是目前4.8.5的新的库文件了。 3.复制这个库文件到指定目录,并修改软连接 # cp /opt/gcc-4.8.5/gcc-build-4.8.5/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19 /usr/lib64 # cd /usr/lib64 # rm libstdc++.so.6 # ln -s libstdc++.so.6.0.19 libstdc++.so.6 4.检查一遍 # strings /usr/lib64/libstdc++.so.6 | grep GLIBC GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 ... (完成)