Linux 网络编程笔记1 | GCC 预处理 预定义宏 环境变量

本文介绍了GCC的编译选项,包括-o、-E、-S、-c、-Wall等,并讲解了预处理指令如#include、#define、#undef等。同时探讨了预定义宏及其在不同文件中的应用,以及如何查看和设置环境变量,如C_INCLUDE_PATH和LD_LIBRARY_PATH,以影响编译过程。
摘要由CSDN通过智能技术生成

一、GCC编译选项

gcc [选项] [参数] 文件1 文件2 …

  • -o: 指定输出文件
    如:gcc hello.c -o hello

  • -E: 预编译,缺省输出到屏幕,用-o指定输出文件
    如:gcc -E hello.c -o hello.i

  • -S: 编译,将高级语言文件编译成汇编语言文件
    如:gcc -S hello.c

  • -c: 汇编,将汇编语言文件汇编成机器语言文件
    如:gcc -c hello.s

  • -Wall:产生全部警告
    如:gcc -Wall wall.c

  • -Werror:将警告作为错误处理
    如:gcc -Werror werror.c

  • -x: 指定源代码的语言
    xxx.c - C语言
    xxx.cpp - C++语言
    xxx.for - Fortran语言
    xxx.java - Java语言

    gcc -x c++ cpp.c -lstdc++ -o cpp

  • -O0/O1/O2/O3: 指定优化等级,O0不优化,缺省O1优化

二、预处理指令

#include - 将指定的文件内容插至此指令处
#define - 定义宏
#undef - 删除宏
#if - 如果
#ifdef - 如果宏已定义
#ifndef - 如果宏未定义
#else - 否则,与#if/#ifdef/#ifndef配合使用
#elif - 否则如果,与#if/#ifdef/#ifndef配合使用
#endif - 结束判定,与#if/#ifdef/#ifndef配合使用
#error - 产生错误,结束预处理
#warning - 产生警告,继续预处理
代码:error.c

#include <stdio.h>
#if (VER < 3)
    #error "版本太低!"
#elif (VER > 3)
    #warning "版本太高!"
#endif
int main(void) {
   
    printf("版本:%d\n", VER);
    return 0;
}

1、gcc error.c -o error -DVER=3 //预处理正常
2、gcc error.c -o error -DVER = 2 //产生错误,结束预处理
3、gcc error.c -o error -DVER=4 //产生警告,继续预处理

#line - 指定行号
代码:line.c

#include <stdio.h>
int main(void) {
   
    int x = 1000;
    printf("%d\n", __LINE__)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值