g++ 编译使用方法

来源:互联网 发布:软件保密协议 编辑:程序博客网 时间:2024/05/16 19:44

用g++编译单个源文件myprog.cc很简单,只要把文件名当参数传给g++就行了。

    $ g++ myprog.cc

    $ ls -l

    -rwxr-xr-x 1 wvh users 13644 Oct 5 16:17 a.out

    -rw-r--r-- 1 wvh users 220 Oct 5 16:17 myprog.cc

    默认情况下,UNIX和LINUX操作系统生成的目标文件是当前目录下的a.out,只要输入./a.out就可以执行。在Cygwin系统下,你得到的是a.exe,通过输入./a或者./a.exe都可以执行。

    要定义g++的输出文件名,使用-o选项如下所示:

    $ g++ myprog.cc -o runme

    $ ls -l

    -rw-r--r-- 1 wvh users 220 Oct 5 16:17 myprog.cc

    -rwxr-xr-x 1 wvh users 13644 Oct 5 16:28 runme

    如果编译多个源文件,只要在命令行里列出它们就行了,如下所示,最终产生的输出文件是showdate:

    $ g++ showdate.cc helper.cc –o showdate

    如果你想先编译这些源文件,最后再把它们链接成一个2进制文件,可以用-c选项,那么g++就只产生object文件,如下所示:

    $ g++ -c showdate.cc

    $ g++ -c helper.cc

    $ g++ showdate.o helper.o –o showdate

    $ ls -l

    total 124

    -rw-r--r-- 1 wvh users 210 Oct 5 12:42 helper.cc

    -rw-r--r-- 1 wvh users 45 Oct 5 12:29 helper.h

    -rw-r--r-- 1 wvh users 1104 Oct 5 13:50 helper.o

    -rwxr-xr-x 1 wvh users 13891 Oct 5 13:51 showdate

    -rw-r--r-- 1 wvh users 208 Oct 5 12:44 showdate.cc

    -rw-r--r-- 1 wvh users 1008 Oct 5 13:50 showdate.o

    注意

    所有的GCC编译器都是通过文件的后缀名来判断文件类型的,然后选择应该进行的操作(比如,后缀名为.o的文件只需要进行链接),文件类型到操作的映射记录在GCC的specs文件里。在GCC版本4以前,specs文件是标准文本文件,可以用任何文本编辑器修改;但是GCC版本4以后specs文件是内建文件,必须要进行解压才能修改。

    很显然,当你的项目文件稍微多点,使用命令行来编译就不可接受了,特别是还要加上搜索目录、优化选项和其他g++选项。解决的方案就是make,不过本文并不讨论它。