这个问题困扰了我好久,但在网路上搜索很久也没有找到具体的,条理清晰的一篇。所以,自己动手丰衣足食(拖拖拖了一个月。。)
运行c++程序
事实证明gcc是理解不了c++的。。
用g++运行你的程序,比如:g++ main.cpp
g++产生一个.out文件,如果跳转到下一句就意味着执行成功(废话)。这时如果没有指定名字的话,就是a.out文件(用-o 指定编译后的名字)./a.cout就能执行那个c++程序了。
调用库
调用外部函数库的方法,之所以管他叫调用,因为。。根本不用在外部引入。。服务器上都有的。。
库不是library嘛,就用-l+lib名去掉.so,比如说:pthread就是-lpthread,zlib.h库就是-lz,math的库名是libm.so,显而易见就是-lz。这个可以用命令ldconfig –p自己查看已缓存的,还是要具体看一下库名的。
所有外部库,或者这样:vim /etc/ld.so.conf
(大概会显示include ld.so.comf.d/*conf
进入目录查看文件ll ld.so.conf.d/ 就好啦)
编译时出现了如果出现这种错误信息:
error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.
提示上加上-std=c++0x或者-std=gnu++0x选项(这个是c++的版本问题)。加上就解决了~
总结
最后,附上我自己的那个c++程序的运行命令:
g++ main.cpp -std=c++0x -lpthread -lboost_regex -lz -o pro
其实我这篇写的也不是很清楚,并且只有说一些操作问题,可能是我太小白了吧,还是要好好学习啊。。