免费注册 查看新帖 |

Chinaunix

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

[C] 关于automake编译文件的一个问题 [复制链接]

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

程序的组织结构是这样:
.
|-- 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@
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-09-28 11:05 |只看该作者
你的第七行capture_LDADD = @PACKAGE_LIBS@ $(top_srcdir)/src/handle.o $(top_srcdir)/src/interface.o

你能确认这几个.o的文件在你使用它们之前被编译出来了么???

偷懒的做法是在bin_直接写上.c的源文件

论坛徽章:
0
3 [报告]
发表于 2011-09-28 15:49 |只看该作者
对,确实时,但是还有什么好的解决方法?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP