使用Automake生成Makefile及动态库和静态库的创建.pdfVIP

使用Automake生成Makefile及动态库和静态库的创建.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用 Automake 生成 Makefile 及动态库和静态库的创建 使用 Automake 创建和使用静态库 1. 目录结构如下: [c-sharp] view plaincopy 1. example 2. | ——src 目录(存放源代码文件) 3. | ——hello.c 4. | ——lib 目录(存放用来生成库的文件) 5. | ——test.c 用来生成静态库 libhello.a 6. | ——include 目录(存放程序中使用的头文件) 7. | ——hello.h 2. 编写的各个目录下的源文件 [c-sharp] view plaincopy 1. hello.h 文件 2. extern void print( char *); 3. test.c 文件 4. #include<stdio.h> 5. void print( char *msg) 6. { 7. print( “%s/n ”, msg); 8. } 9. hello.c 文件 10. #include “hello.h ” 11. int main() 12. { 13. print( “Hello static library! ” );// 这里用到的是静态库中的函数 14. return 0; 15. } 3. 编写 lib/Make 文件 [c-sharp] view plaincopy 1. noinst_LIBRARIES=libhello.a 2. libhello_a_SOURCES=test.c 3. AUTOMAKE_OPTIONS=foreign 第一行 noinst 表示生成的是静态库,不需要 make install ,直接制定它的位 置和名字就 可以使用。 第二行表示用来生成静态库的源文件。如果要把静态库生成到其他地方,可以 在 =后面 加上路径(建议用绝对路径,并将所要用到的静态库生成在同一个文件夹下, 如 lib )。 第三行 AUTOMAKE_OPTIONS是 Automake 的选项。Automake 主要是帮助开发 GNU 软 件的人员来维护软件,所以在执行 Automake 时,会检查目录下是否存在标准 GNU软件中 应具备的文件, 例如 'NEWS' 、'AUTHOR'、 'ChangeLog' 等文件。设置为 foreign 时,Automake 会改用一般软件的标准来检查。如果不加这句的话,需要在 autoconf 之前,先 执行 touch NEWS README AUTHORS ChangeLog来生成 'NEWS'、'AUTHOR'、 'ChangeLog' 等文件 4. 编写 src/Make 文件 [c-sharp] view plaincopy 1. AUTOMAKE_OPTIONS=foreign 2. INCLUDES= -I../include 3. bin_PROGRAMS=hello 4. hello_SOURCES=hello.c 5. hello_LDADD=../lib/libhello.a 第二行指定头文件的位置, -I 是 idirafter 的缩写。 ../include 指定头文件 的位置, .. 是上 一级目录,也就是这里的 example 目录。 第三行指定生成可执

文档评论(0)

雪梅 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档