Linux C基础

编译和链接

  1. fred.c
#include <stdio.h>
void fred(int arg)
{
   printf("fred: you passed %d\n", arg);
}
  1. bill.c
#include <stdio.h>
void bill(char *arg)
{
  printf("bill: you passed %s\n", arg);
}
  1. 编写头文件"lib.h"
void bill(char *);
void fred(int)
  1. 主文件 "program.c"
#include "lib.h"
int main()
{
  fred(10);
  bill("I love you!");
  return 0;
}
  1. 编译和链接程序
cc -c bill.c fred.c    ->生产bill.o 和 fred.o
cc -c program.c    ->生成program.o
cc -o program program.o bill.o fred.o -> 链接 生成program可执行程序
./program ->执行程序

创建和使用库文件

  1. 创建一个库文件
$ ar crv livfoo.a bill.o fred.o
  1. 库文件的使用
$ cc -o program program.o livfoo.a
  1. 使用nm查看函数
nm livfoo.a

动态库文件

.so就是动态库文件,文件相当于windows的DLL

  1. 查看程序所需要的共享库
ldd program
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内核版本 : 主版本号.次版本号.释出版本-修订版本 主、次为奇数 : 开发版 主、次为偶数 : 稳定版 软件包 ...
    ibo阅读 418评论 0 0
  • diff : 比较两个文件 diff:比较两个文件 diff file1 file2 : 如果在终端屏幕没有任何...
    ibo阅读 189评论 0 0
  • 动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载库。大多数操作系统将解析外部引用(比如库)作为加载过...
    小5筒阅读 5,557评论 0 3
  • 有人问洛克菲勒:请问您成功的秘诀是什么?他却反问:你不成功的借口是什么?你可以说:我没有学历,没有钱,没有人脉,没...
    我爱你爱他阅读 371评论 0 0