Autoconf使用范例

本文详细介绍了Autoconf的使用,从最简单的程序编译开始,逐步讲解了如何处理带资源文件的GTK程序编译,以及如何添加国际化支持。还涉及到带子目录的编译和桌面文件的配置,帮助读者掌握Autoconf在实际项目中的应用。
摘要由CSDN通过智能技术生成

<!-- @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])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值