zoukankan      html  css  js  c++  java
  • [C]gcc编译器的一些常用语法

    简单的GCC语法:

    如果你只有一个文件(或者只有几个文件),那么就可以不写Makefile文件(当然有Makefile更加方便),用gcc直接编译就行了。在这里我们只介绍几个我经常用的几个参数,第一是 “-o”,它后面的参数表示要输出的目标文件,再一个是 “-c”,表示仅编译(Compile),不连接(Make),如果没有”-c”参数,那么就表示连接,如下面的几个命令:

    gcc –c test.c,表示只编译test.c文件,成功时输出目标文件test.o

    gcc –c test.c –o test.o ,与上一条命令完全相同,加入-o选项的意义在于你可以指定输出二进制文件的名字

    gcc –o test test.o,将编译过的test.o连接成可执行的二进制文件test

    gcc test.o -o test,与上一条命令相同

    gcc –o test test.c,将test.c编译并连接成可执行的二进制文件test

    gcc test.c –o test,与上一条命令相同

    gcc –c test1.c,只编译test1.c,成功时输出目标文件test1.o

    gcc –c test2.c,只编译test2.c,成功时输出目标文件test2.o

    gcc –c test1.c test2.c,将test1.v和test2.v编译为test1.o和test2.o

    gcc –o test test1.o test2.o,将test1.o和test2.o连接为可执行的二进制文件test

    注:如果你想编译cpp文件,那么请用g++,否则会有类似如下莫名其妙的错误:

    cc3r3i2U.o(.eh_frame+0x12): undefined reference to `__gxx_personality_v0’......

    还有一个参数是”-l”参数,与之紧紧相连的是表示连接时所要的链接库,比如多线程,如果你使用了pthread_create函数,那么你就应该在编译语句的最后加上”-lpthread”,”-l”表示连接,”pthread”表示要连接的库,注意他们在这里要连在一起写,还有比如你使用了光标库curses,那么呢就应该在后面加上”-lcurses”,比如下面的写法:

    gcc –o test test1.o test2.o –lpthread –lcurses

    当然gcc的参数我感觉有几百个,不过我们平时在x86机器上用的就这么些,况且这里也不是GCC教程,所以,就此打住。

     

    关于math.h头文件的语

    如果包含math.h头文件,编译时需要加上-lm参数,例如 gcc test1.c -lm -o test

    关于pthread扩展

    如果需要使用POSIX.1-2001中的pthread扩展,编译时需要加上-lpthread参数,例如 gcc test1.c -lpthread -o test

    关于C++

    如果是C++,编译时则需要加上-lstdc++,例如 gcc test1.cpp -lstdc++ -o test

     

    关于文件后缀

    如果是头文件,命名为.h,如果是编译单元,命名为.c。千万不要把编译单元命名为.h,gcc会视它为一个头文件去编译,当你想把它跟其他编译单元链接起来的时候,就会报错

    xxx.xxx: file not recognized: File format not recognized

     

     附录

    gcc编译选项

  • 相关阅读:
    Django---Blog系统开发之注册页面(验证码&ajax发送文件)
    Django---Blog系统开发之建库
    Eclipse下导入外部jar包的3种方式
    linux 下 .sh 文件语法
    热备,冷备,云备的区别
    plsql 中如何清除曾经登录过的用户名
    Mac 查看python安装路径
    mac terminal终端怎么退出python命令行
    PyCharm 2017 Mac 免注册版破解安装说明
    PL/SQL恢复默认窗口样式
  • 原文地址:https://www.cnblogs.com/yiyide266/p/9682120.html
Copyright © 2011-2022 走看看