• 第一章 入门


    开发系统导引

    应用程序

    /usr/bin:系统为正常使用提供的程序

    /usr/local/bin,/opt:系统管理员存放的应用程序

    头文件

    C语言的头文件几乎都放在/usr/include

    依赖特定Linux版本的头文件放在/usr/include/sys和/usr/include/linux

    库文件

    标准库文件存在/lib和/usr/lib

    库文件的名字以lib开头,随后的部分指明什么库。文件名最后以.开始,然后给出库文件的类型:

    .a表示静态函数库

    .so表示动态函数库

    通过给出完整库文件路径名或-l标志告诉编译器要搜索的库文件

    gcc -o fred fred.c /usr/lib/libm.a

    gcc -o fred fred.c -lm

    -lm表示标准库(/usr/lib)中名为libm.a的函数库。如果是动态库,则自动选择动态库。

    静态库

    举例:

    为两个函数fred和bill创建各自的源文件

    //fred.c

    #include<stdio.h>
    void fred(int arg)
    {
      printf("fred:we passed %d ",arg);
    }

    //bill.c

    #include<stdio.h>
    void bill(char *arg)
    {
      printf("bill:we passed %s ",arg);
    }

    编译这两个文件

    gcc -c fred.c bill.c

    分别产生fred.o和bill.o文件

    创建一个头文件lib.h,头文件声明库文件中的函数

    //lib.h

    void bill(char *);
    void fred(int);

    创建主程序program.c,他包含库的头文件并且调用库文件中的一个函数

    //program.c

    #include<stdlib.h>
    #include "lib.h"

    int main()
    {
      bill("Hello world");
      exit(0);
    }

    创建目标文件(program.o)

    gcc -c program.c

    先为编译器显式指定目标文件,然后要求编译器编译你的文件并与先前编译好的目标文件链接,产生可执行文件program。

    gcc -o program program.o bill.o

    执行文件

    ./program
    bill:we passed Hello world

     创建库文件

    将bill.o fred.o归并到一个文档中,使用ar命令

    ar crv libfoo.a bill.o fred.o
      a - bill.o
      a - fred.o

    调用函数库

    gcc -o program program.o libfoo.a

    注意:gcc -o  filename filename.c表示编译并链接,生成filename可执行文件,gcc -c filename.c表示将filename.c进行编译,但不链接。生成filename.o文件

  • 相关阅读:
    Hive
    Hadoop简介与分布式安装
    Hadoop分布式文件系统HDFS
    HDFS的操作SHELL和API
    HDFS高级功能
    Yarn
    Hadoop的I/O操作
    Hadoop的RPC工作原理
    Mapreduce入门和优化方案
    MapReduce的工作机制
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5946188.html
Copyright © 2020-2023  润新知