mac c cpp

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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值