在linux下生成可执行文件和库文件

来源:互联网 发布:歪歪语音官方下载 mac 编辑:程序博客网 时间:2024/06/02 06:46

l         Linux 下编写普通可执行文件的命令:

gcc –o 目标文件名 源文件名(列表)

如果工程包含多个 .c .h 那么在源文件名列表中只列出所有的 .c 文件

例:工程文件夹里有 des.c  hash.c  main.c  des.h  hash .h 要将他们编译成 EncApp 可执行文件,则使用下面的命令

    gcc  –o  EncApp  des.c  hash.c  main.c

l         Linux 下编写调用动态库或静态库的可执行文件的命令:

gcc –o 目标文件名 源文件名(列表)库文件名(列表)

如果工程包含多个 .c .h 那么在源文件名列表中只列出所有的 .c 文件和库文件

例:工程文件夹里有 main.c  enc.so 要将他们编译成 EncApp 可执行文件,则使用下面的命令

gcc  –o  EncAp  main.c  enc.so

注意: .so 文件必须事先复制到 /usr/lib 目录下

l         生成静态库需要的命令

生成静态库 .a 必须先生成 目标文件 .o 然后再生成静态库 .a

生成目标文件的命令格式为:

gcc  –c  –o  目标文件名 .o   源文件名 .c (列表)

生成静态库的命令格式为:

ar  –r  静态库文件名 .a   目标文件名 .o

l         生成动态库需要的命令

生成动态库 .so 必须先生成 目标文件 .o 然后再生成动态库 .so

生成目标文件的命令格式为:

gcc  –fpic  –c  –o 目标文件名 .o  源文件名 .c (列表)

生成动态库的命令格式为:

gcc  –shared  –o  动态库文件名 .so  目标文件名 .o

l    备注:在编译可执行文件,各种目标文件和库文件的时候,用到的 .h 文件必须在编译文件夹下,如果没有这些头文件,编译器将报错。

0 0
原创粉丝点击