mac c cpp

来源:互联网 发布:c语言输出心形图案 编辑:程序博客网 时间:2024/05/17 12:25

1.编译c/cpp文件过程

(1)预编译:处理c/cpp文件里: #include<stdio.h>、宏定义(后面自动加 ; 号)

     gcc -E hello.c -o hello.i

(2)编译:检查语法词法错误,可查看 .s文件

    gcc -S hello.i -o hello.s

(3)汇编阶段:可查看汇报语言 .o文件

    gcc -c hello.s -o hello.o

(4)链接阶段:生产可执行二进制文件

   gcc hello.o -o hello

(5)也可以一步完成:生成 ./a.out 文件

  gcc hello.c  

  gcc main.c -o main


2.文件说明

(1) .out 文件 gcc xxx.c 文件默认生成 a.out 文件执行 ./a.out 

    gcc main.c

(2).o 文件:生成的目标文件

    gcc -c lzio.c 

(3).a 文件:由很多 .o 文件组成的静态文件

    ar -r ttt.a test_call_lua.o xxx.o

(4).so文件:动态文件

    gcc -c mylualib.c ; 
    gcc -O2 -bundle -undefined dynamic_lookup -o mylualib.so mylualib.o


3.mac编译连接c/c++

(1) -pedantic 选项: 使用扩展语法的地方将产生相应的警告信息 

(2) -Wall 选项: 要求 GCC将产生尽可能多的警告信息 

(3) -Werror选项:要求 GCC将所有的警告当成错误进行处理

(4) Linux下头文件和库文件默认目录

    头文件 (.h): /usr/include/目录 
    库文件 (.so, .a): /usr/lib/目录

(5) -I(i) 选项:添加新的搜索目录,

    gcc -o hello hello.c -I /usr/dess/include

    在此目录下找头文件

(6) -L选项:添加新的搜索目录,主要是 .so文件,libfoo.so == lfoo
    gcc -o test test.c -L /home/crosstar/lib –lfoo
(7) -static 选项: 强制使用静态链接库 libfoo.a = lfoo

   gcc -o test test.c -L /home/crosstar/lib -static –lfoo  或

   gcc -o test test.c -L /home/crosstar –lfoo


库文件命名规则 libxxx如libfoo.a 所以libfoo.so|libfoo.a == lfoo










0 0
原创粉丝点击