linux下c编程,为什么有些程序用g++就可以编译,而用gcc时必须加上-lstdc++呢?
因为gcc只能编译C语言编写的程序,有的程序是用C++写的,所以编译的时候就要使用G++,或者手动加上标准C++库
虚拟机上的Linux系统怎么安装gcc编译器?
如果Linux服务器能够上网的话,使用 yum命令安装安装gcc yum install gcc 安装g++ yum install gcc-c++如果是纯手工安装RPM包的话,比较繁。要依赖包一个一个安装上去,最后再安装gccrpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpmrpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpmrpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpmrpm -ivh libgomp-4.4.7-4.el6.x86_64.rpmrpm -ivh ppl-0.10.2-11.el6.x86_64.rpmrpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpmrpm -ivh mpfr-2.4.1-6.el6.x86_64.rpmrpm -ivh cpp-4.4.7-4.el6.x86_64.rpmrpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
gcc命令如何查看目标文件类型?
gcc命令要查看目标文件类型方法如下:一、gcc options
-E 不生成文件,只输出预处理结果(输出终端
-S 只预处理和编译,把文件编译成为汇编代码greet.s
-c 预处理,编译和汇编,生成.o的obj文件 ( greet.o )
-o file 输出名为file的可执行文件名 (缺省为a.out)
-O -O2 优化编译
-g: 产生可用于调试的输出
-Wall 提示更多警告信息
-Wstrict-prototypes 如果函数的声明或定义没有指出参 数类型,编译器就发出警告.
-Wl,option 将option作为选项传递给linker, option 逗号分割, 如:-Wl,-soname,libmymath.so.1
二、创建函数库
分类:
静态库: 在编译过程中将库函数代码直接加入到生成的可执行程序中,程序运行过程中不需要利用库函数。
动态库: 编译时,只是在生成的可执行程序中简单指定需要使用的库函数信息,程序运行过程中需要利用库函数。
共享库: 共享库的一种变化形式,目前大都采用共享库的方式。(好处:1、节省物理内存;2、库更新后不用重新链接;3、不需要在编译时指定库)
命名:
静态库: 前缀lib+库名+.a (libm.a, libstdc++.a等)
共享库: 前缀lib+库名+.so+版本号 (libm.so.6, libc.so.6)
三、查看可执行目标文件结构:size
The size utility displays sizes of each section in an object file.
示例:
# size a.out
text data bss dec hex filename
1015 232 24 1271 4f7 a.out
四、查看可执行文件依赖哪些库:ldd
The ldd utility is very useful in finding out the dependencies of an executable on shared libraries.
示例:
# ldd a.out
libc.so.6 => /lib/i686/libc.so.6 (0x4002c000)
/lib/ld-linux.so.2 =>/lib/ld-linux.so.2 (0x40000000)
linux下怎么安装gcc?
1、在Linux环境下只要能链接Internet就可以通过本地的yum源来安装,在终端下输入yum install gcc就可以
2、linux内核自带了这些硬件的驱动,无须下载安装的
3、你用的是虚拟机,只要在安装linux的时候设定好以桥连的方式共享Internet就可以上网的
4、这个还没试过。你可以搜索一下虚拟机与本地文件共享相关的关键字试一试
5、这个只是个warning,不是error,系统已经提示你可以以超级用户(相当于windows下的管理员权限)的是身份登陆了,而且还要设定密码
还有什么疑问,咱们再讨论
. gcc文件如何打开?
gcc 是命令行格式的,比如编译hello.c用这个命令gcc -o hello hello.c然后运行 /.hello就可以执行了c++的话就用g++ -o hello hello.cpp