免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2110 | 回复: 1
打印 上一主题 下一主题

[求助]automake编译源码的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-27 23:56 |只看该作者 |倒序浏览
本帖最后由 bjtulq 于 2011-09-28 00:15 编辑

程序的组织结构是这样:
.
|-- Makefile.am
|-- configure.in
|-- configure.scan
|-- gtk
|   |-- Makefile.am
|   |-- gtk_callbacks.c
|   |-- gtk_interface.c
|   |-- gtk_main.c
|   |-- gtk_support.c
|-- src
|   |-- handle.c
|   |-- interface.c
|   `-- Makefile.am
|-- include
|   |-- gtk_callbacks.h
|   |-- gtk_interface.h
|   |-- gtk_main.h
|   |-- gtk_support.h
|   |-- handle.h
|   |   `-- interface.h

gtk_main.c是主程序,会调用gtk_interface.c,gtk_interface.c调用gtk_callbacks.c的函数,gtk_callbacks.c调用handle.c interface.c.我是这样写Makefile.am的,但是最后编译的时候发生了错误.能帮我看看这样是否正确。主要两个c文件在src目录,我将handle.c interface.c直接放在gtk目录下是可以正常编译的
  1. ##./Makefile.am##
  2. SUBDIRS = gtk src

  3. ##./gtk/Makefile.am##
  4. bin_PROGRAMS = capture
  5. capture_SOURCES =gtk_main.c gtk_interface.c gtk_callbacks.c gtk_support.c
  6. capture_LDADD = @PACKAGE_LIBS@ $(top_srcdir)/src/handle.o $(top_srcdir)/src/interface.o
  7. INCLUDES = $(top_srcdir)/include @PACKAGE_CFLAGS@

  8. ##./src/Makefile.am##
  9. noinst_PROGRMAS = handle interface
  10. handle_SOURCES = handle.c
  11. interface_SOURCES = interface.c
  12. INCLUDES = $(top_srcdir)/include @PACKAGE_CFLAGS@
复制代码

论坛徽章:
1
狮子座
日期:2013-09-29 16:47:13
2 [报告]
发表于 2011-09-28 16:24 |只看该作者
本帖最后由 silverzhaojr 于 2011-09-28 17:41 编辑

修改src/Makefile.am:

  1. ## src/Makefile.am ##
  2. noinst_LIBRARIES = handle.a interface.a
  3. handle_a_SOURCES = handle.c
  4. interface_a_SURCES = interface.c
  5. ## automake(ver 1.11.1) man 中不提倡使用INClUDES
  6. AM_CPPFLAGS = -I$(top_srcdir)/include @PACKAGE_CFLAGS@
复制代码
同时,将gtk/Makefile.am中相应的.o改为.a。
再修改 configure.in: ## 新版提倡使用后缀.ac,即configure.ac

  1. ## 增加一行,用来编译静态库
  2. AC_PROG_RANLIB
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP