编译小结(2) GCC常见用法及技巧
来源:互联网 发布:mssql数据库日志截断 编辑:程序博客网 时间:2024/05/17 04:59
这里把编译时常用的一些集中起来,方便查找。
例1.最简单的编译例子。
默认是编译成32位程序
gcc -o xcl test.c
编译成64位:
gcc -m64 -o xcl test.c
各系统编译64位程序开关如下:
AIX 64BIT -maix64
HP-UX 64bit -mlp64
Solaris 64bit -m64
Linux 64bit -m64
例2.如果想要能用gdb调试程序,可参考下面的命令行:
gcc -m64 -Wall -O -g -o xcl test.c
参数说明:
-Wall 输出所有的警告信息。
-O 在编译时进行优化。
-g 表示编译debug版本。
例3.高低版本发布兼容性处理.
如在RHEL6之类高版本系统上编译,但程序要发布到低版本RHEL4之类的系统上运行,
思考可能会因为glibc版本太低出现Floating Point Exception运行时错误,
可以在编译时加上参数"--hash-style=sysv"来解决
gcc -m64 -Wall -O -g -Wl, --hash-style=sysv -o xcl test.c
例4.如在代码中引用了其它文件,如other.c。则在编译时要将其加进去。
gcc -m64e -o xcl test.c other.c
小技巧,当不能确定时,可以用 gcc -MM test.c 查出相依赖的.h文件,就能找到相关的.c文件了。
这招也可用在写Makefile时。
例5.如引用到其它的lib或.h头文件
gcc -m64 -Lcompenv/lib -ldemo -Icompenv/include -o xcl test.c
参数说明:
-Lcompenv/lib 引用了当前compenv目录下lib目录中的库文件
-ldemo 编译时要链接当前compenv目录下lib中的libdemo.so动态链接库。
注意Unix/Linux下动态的命令规则为: “lib”开头“.so”结尾。
-Icompenv/include 引用了compenv目录下lib目录中的.h文件
除了"-I"指定头引用的文件目录,还可以用"CPATH"环境变量完成相同功能。
export CPATH=$CPATH:/xcl/test/include
指定后,就不要在gcc时指定"-I"参数了.
例6.gcc编译器对新标准的支持,要注意。只有在编译时指定-std参数,才能正确的编译新特性。
//c99标准
gcc -std=c99 -m64 -o xcl test.c
//C++ 11标准
g++ -std=c++11 -m64 -o xcl test.cpp
注意c是小写,不要弄混了。
例1.最简单的编译例子。
默认是编译成32位程序
gcc -o xcl test.c
编译成64位:
gcc -m64 -o xcl test.c
各系统编译64位程序开关如下:
AIX 64BIT -maix64
HP-UX 64bit -mlp64
Solaris 64bit -m64
Linux 64bit -m64
例2.如果想要能用gdb调试程序,可参考下面的命令行:
gcc -m64 -Wall -O -g -o xcl test.c
参数说明:
-Wall 输出所有的警告信息。
-O 在编译时进行优化。
-g 表示编译debug版本。
例3.高低版本发布兼容性处理.
如在RHEL6之类高版本系统上编译,但程序要发布到低版本RHEL4之类的系统上运行,
思考可能会因为glibc版本太低出现Floating Point Exception运行时错误,
可以在编译时加上参数"--hash-style=sysv"来解决
gcc -m64 -Wall -O -g -Wl, --hash-style=sysv -o xcl test.c
例4.如在代码中引用了其它文件,如other.c。则在编译时要将其加进去。
gcc -m64e -o xcl test.c other.c
小技巧,当不能确定时,可以用 gcc -MM test.c 查出相依赖的.h文件,就能找到相关的.c文件了。
这招也可用在写Makefile时。
例5.如引用到其它的lib或.h头文件
gcc -m64 -Lcompenv/lib -ldemo -Icompenv/include -o xcl test.c
参数说明:
-Lcompenv/lib 引用了当前compenv目录下lib目录中的库文件
-ldemo 编译时要链接当前compenv目录下lib中的libdemo.so动态链接库。
注意Unix/Linux下动态的命令规则为: “lib”开头“.so”结尾。
-Icompenv/include 引用了compenv目录下lib目录中的.h文件
除了"-I"指定头引用的文件目录,还可以用"CPATH"环境变量完成相同功能。
export CPATH=$CPATH:/xcl/test/include
指定后,就不要在gcc时指定"-I"参数了.
例6.gcc编译器对新标准的支持,要注意。只有在编译时指定-std参数,才能正确的编译新特性。
//c99标准
gcc -std=c99 -m64 -o xcl test.c
//C++ 11标准
g++ -std=c++11 -m64 -o xcl test.cpp
注意c是小写,不要弄混了。
- 编译小结(2) GCC常见用法及技巧
- 常见gcc编译参数
- 常见gcc编译警告
- GCC编译技巧
- gcc编译基本用法
- gcc编译基本用法
- Handler常见用法小结
- 编译小结(1) GCC多平台安装(Linux,Aix,HP-UX,Solaris)及编译参数
- gcc常见编译参数介绍
- 常见gcc编译警告整理
- gcc常见编译参数介绍
- gcc常见的编译指令
- gcc编译之常见错误
- gcc常见编译参数介绍
- gcc & gdb 常见用法总结
- [小技巧] gcc 编译选项-###
- GCC 编译链接命令用法
- GCC 编译链接命令用法
- 初识Flexbox 布局
- 5个最流行的跨平台开发工具
- 好东西
- java MD5码加密
- mac 10.9 install cocoapods issue
- 编译小结(2) GCC常见用法及技巧
- 编译小结(3) 动态库(.so)编译及二种调用技巧
- MYSQL 优化数据库结构
- 为 SELECT.options 对象增加或删除选项的方法在各浏览器中的支持情况不同
- 破解Oracle ERP密码
- 编译directshow若干问题的解决
- paip.语义相关是否可在 哈米 的语义分析中应用
- 数据的游戏:冰与火
- myeclipse中项目名称改掉,造成cvs版本混乱问题解决(有很多代码未提交)