GCC

作者: gb_QA_log | 来源:发表于2019-08-28 23:05 被阅读0次

    how to use gcc to compile c file?

    reference

    • pre-process: define, inline function etc.

    gcc -E main.c -o main.i
    -D MAX=1 宏MAX为1
    -U DEBUG 取消定义宏DEBUG

    • compile: get assembly language file

    gcc -S main.i -o main.s

    • assemble汇编:把助记符(Memoni)换成操作码,把地址符号(Symbol)或标号(Label)换成地址码,得到目标文件

    gcc -c main.s -o main.o

    • link:会检查出引用等错误

    gcc main.o -o main 可执行文件

    • lib:标准库的大部分函数通常放在文件 libc.a 中(文件名后缀.a代表“achieve”,译为“获取”),或者放在用于共享的动态链接文件 libc.so 中(文件名后缀.so代表“share object”,译为“共享对象”)。这些链接库一般位于 /lib/ 或 /usr/lib/,或者位于 GCC 默认搜索的其他目录。

    gcc main.c -o main.out -lm
    #则会搜索/usr/lib下等libm.so 或 libm.dylib

    • 如果想链接其他目录下等库

    gcc main.c -o main.out /usr/lib/libm.a
    #指明具体的文件
    gcc main.c -o main.out -L/usr/lib:/usr/local/lib -lm
    #或者-L可能的目录

    makefile

    为了节省时间,可以使用 make 控制创建过程,由它调用编译器重新编译,而且只编译比对应的最新源文件旧的那些目标文件。

    cmake

    cmake -D CMAKE_INSTALL_PREFIX=~/
    

    cmake则兼容了不同平台

    相关文章

      网友评论

          本文标题:GCC

          本文链接:https://www.haomeiwen.com/subject/rnpvectx.html