人类的孤独像是一种与生俱来的残疾。

库文件的生成与使用

C语言 smallfish 1083℃

本文摘自网络,如有侵犯,请联系删除!

首先使用建立三个文件:hello.h,hello.c,main.c

hello.h

#ifndef __HELLO_H__
#define __HELLO_H__

#ifdef __cplusplus
extern "C"{
#endif

void hello(const char *name);

#ifdef __cplusplus
}
#endif

#endif /* __HELLO_H__ */

hello.c

#include <stdio.h>
void hello(const char *name)
{
    printf("Hello, %s!\n", name);
}

main.c

#include "hello.h"

int main(int argc, char *argv[])
{
    argc = argc;
    argv = argv;

    hello("World");
    return 0;
}

一、静态库的生成及使用

1、编译成库文件:

# gcc -c hello.c
# ar crv libmyhello.a hello.o

注意:由于库文件以"lib"为前缀,然后紧跟库文件名,再以".a"为扩展名。

2、静态库的使用。

例如在main.c中需要使用myhello.a静态库中的hello函数,则(1)在main.c中将hello函数原型声明引入main.c,然后编译时连接静态库:

# gcc main.c -L. -lmyhello -o main

二、动态库的生成与使用

1、编译成库文件

# gcc -c -fPIC hello.c
# gcc -shared -fPIC -o libmyhello.so hello.o

注意:

1、动态库文件命名跟静态库类似,但扩展名为".so";

2、编译成目标文件时需要加-fPIC选项。

2、动态库的使用

动态库的使用在源文件中引用时与静态库无异,仅编译参数不同,另外动态库需要在usr/lib、/lib目录下存放该库文件,即(libmyhello.so)。

注意:若动态库与静态库同时存在时,优先使用动态库。

转载请注明:OpenMind » 库文件的生成与使用

喜欢 (0)