Autoconf使用范例

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } H3 { margin-bottom: 0.21cm } H3.western { font-family: "Bitstream Vera Sans", sans-serif } H3.cjk { font-family: "Bitstream Vera Sans"; font-style: normal } H3.ctl { font-family: "Bitstream Vera Sans" } A:link { so-language: zxx } -->

Autoconf 使用范例

 

1 ,最简单程序编译

 

1) 首先编写了源代码test.c, 如下:

int main()

 

{

printf("hello world!/n");

 

return 0;

 

}

2) 生成configure.in 或者configure.ac

运行autocan 生成configure.scan ,稍作修改,事实上只修改了两处。

一处是 AC_INIT ,定义包名,版本号和著作人。

另一处是添加了AM_INIT_AUTOMAKE ,这个是automake 工具的宏,有兴趣可以google 一下。

 

AC_PREREQ([2.63])

 

AC_INIT([hello], [0.10], [zhongsc@thunderst.com])

 

AM_INIT_AUTOMAKE(foreign)

 

AC_CONFIG_SRCDIR([test.c])

 

AC_CONFIG_HEADERS([config.h])

 

 

 

# Checks for programs.

 

AC_PROG_CC

 

 

 

# Checks for libraries.

 

 

 

# Checks for header files.

 

 

 

# Checks for typedefs, structures, and compiler characteristics.

 

 

 

# Checks for library functions.

 

 

 

AC_CONFIG_FILES([Makefile])

 

AC_OUTPUT

 

 

3 )生成Makefile.am

这个得自己写,不过一般很简单,如下:

bin_PROGRAMS = hello

 

hello_SOURCES = test.c

bin_PROGRAMS 是定义生成的可执行文件的名称。

hello_SOURCES 是定义生成可执行文件hello, 需要通过哪些源文件去编译。如果生成多个二进制文件如A, B ,则需要定义A_SOURCE, B_SOURCE. 如果有nc 文件生成一个可执行文件,只需将这些文件一一列出以空格分开就可以了,如A_SOURCE= a1.c a2.c a3.c

 

 

4) 有了test.c Makefile.am configure.in, 则可以执行自动编译工具了。

运行autoreconf -i → ./configure –prefix=/usr → make → make install

可以通过make dist 生成tar 包。

2 , 简单的 gtk 程序编译。

 

1) 首先还是写源码 test.c 如下:

#include <gtk/gtk.h>

 

int main(int argc, char* argv[])

 

{

 

gtk_init(&argc, &argv);

 

GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

 

g_signal_connect(G_OBJECT(window), "delete-event", gtk_main_quit, NULL);

 

gtk_window_set_default_size(GTK_WINDOW(window), 200,200);

 

gtk_widget_show(window);

 

gtk_main();

 

return 0;

 

}

 

2 )生成 configure.in.

需要在原来的基础上再做修改,添加了 3 行:

PKG_CHECK_MODULES(GTK, gtk+-2.0)

 

AC_SUBST([GTK_CFLAGS])

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值