2. 编译如果我们想获得编译后的源文件可以使用-S选项,该选项让gcc只执行编译(生成汇编文件)而不进行汇编(生成目标文件),此时,我们可以用-o选项指定输出的汇编文件的名称。
gcc –S helloworld.cpp –o hellowrld.S
3. 汇编另外,我们还可以使用GCC的-c选项来编译和汇编源文件而不链接,此时-o指定的输出文件就是编译后的目标文件名gcc –x c++ -c helloworld.cpp –o helloworld.o
4. 链接最后,我们可以利用GCC来把我们刚才生成的.o文件链接成可执行程序gcc helloworld.o –o helloworld这一次,我们使用了-o选项指定了可执行文件名,也就是说,根据输入文件类型的不同,-o有着不同的含义。
5. 函数库的链接和包含文件对于我们编写的任和一个程序,没有库函数的支持是不可想象的,而当我们要使用的头文件和函数库不在GCC默认的搜索路径下的时候(例如OpenGL、Qt、KDE、Boost等),我们就需要手工来告诉GCC他们的位置。
先来看头文件路径的指定。我们可以利用-I来指定我们希望GCC去搜索的头文件目录,例如我们要使用X11的程序,我们就要使用下面的选项再来看库函数的设置:我们通过-L和-l两个命令行选项完成任务。其中-L用于告诉GCC在中去寻找函数库,而-l选项则告诉GCC使用用户指定的程序库。在Linux中,函数库的命名是遵循UNIX约定的,即lib{lib name},例如libsocket.so,所以当你需要告诉GCC使用这些库的时候,你就可以使用-lsocket选项。通常,这两个命令是结合在一起使用的,例如引用X11程序库的时候,我们可以这样:
–L/usr/X11R6/lib–lX11