其中2.7.main.c内容:
/*---------------------------------------------------------------------------------------------*/
#include
float avg(int var[],int num);
int main()
{
int n,i;
float average;
printf("请输入需要计算的整数个数:");
scanf("%d",&n);
int array[n];
for(i=0;i
printf("请输入第%d个整数:",i+1);
scanf("%d",&array[i]);
}
average=avg(array,n);
printf("所有%d个整数的平均值是:%6.2f\n",n,average);
}
/*----------------------------------------------------------------------------------------------*/
2.7.avg.c内容:
/*----------------------------------------------------------------------------------------------*/
float avg(int var[],int num)
{
float avrg=0.0;
int i;
for(i=0;i
avrg+=var[i];
}
avrg/=num;
return (avrg);
}
/*----------------------------------------------------------------------------------------------*/
使用命令root@ubuntu:/root/chap-2/autotools# autoscan生成的configure.scan文件的内容如下:
/*----------------------------------------------------------------------------------------------*/
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.67])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([2.7.avg.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_OUTPUT
~
"configure.scan" 20L, 469C
/*-----------------------------------------------------------------------------------------*/
在configure.scan中的AC_CONFIG_SRCDIR([2.7.avg.c])中括号内为什么是2.7.avg.c而不是2.7.main.c呢?求高手指教
P.S.:这是在虚拟机中操作的
jayee 于 2011-07-13 14:56:32发表:
以我自己为例子也写一下我遇到的问题: {
{
1.编写程序2.7.avg.c 2.7.main.c
/*-------------------------2.7.avg.c----------------------------*/
float avg(int var[],int num)
{
float avrg=0.0;
int i;
for(i=0;i
avrg+=var[i];
}
avrg/=num;
return (avrg);
}
/*-----------------------------------------------------------*/
/*-------------------------2.7.main.c----------------------------*/
#include "stdio.h"
float avg(int var[],int num);
int main()
{
int n,i;
float average;
printf("请输入需要计算的整数个数:");
scanf("%d",&n);
int array[n];
for(i=0;i
printf("请输入第%d个整数:",i+1);
scanf("%d",&array[i]);
}
average=avg(array,n);
printf("所有%d个整数的平均值是:%6.2f\n",n,average);
}
/*-----------------------------------------------------------*/
2.# autoscan
#vim configure.scan // 查看并修改内容
/*-----------------------configure.scan------------------------------------*/
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.67])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) //开头没#
AC_CONFIG_SRCDIR([2.7.avg.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_OUTPUT
/*--------------------------------------------------------------------------*/
//修改内容
/*----------------------configure.scan--------------------------------*/ //修改后的内容
AC_PREREQ([2.67])
#AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) //开头增加#
AC_INIT(2_7,1.0) //最后可执行文件名,版本
AM_INIT_AUTOMAKE(2_7,1.0) //增加此行
AC_CONFIG_SRCDIR([2.7.avg.c])
AM_CONFIG_HEADER([config.h]) //C改为M,原来HEADERS的S去掉
# 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.#mv configure.scan configure.in //将configure.scan改为configure.in
4.#aclocal
# ls
2.7.avg.c 2.7.main.c aclocal.m4 autom4te.cache autoscan.log configure.in
5#autoconf
# ls
2.7.avg.c aclocal.m4 autoscan.log configure.in
2.7.main.c autom4te.cache configure
6.#autoheader
# ls
2.7.avg.c aclocal.m4 autoscan.log configure2.7.main.c autom4te.cache config.h.in configure.in
7.#vim makefile.am //写makefile.am
/*-------------------------makefile.am--------------------------*/
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=2_7
2_7_SOURCES=2.7.main.c 2.7.avg.c
/*-------------------------------------------------------------------*/
8.#automake -a
configure.in:7: installing `./install-sh'
configure.in:7: installing `./missing'
makefile.am: installing `./depcomp'
# ls
2.7.avg.c autom4te.cache configure install-sh missing2.7.main.c autoscan.log configure.in makefile.am
aclocal.m4 config.h.in depcomp makefile.in
9.#./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
configure: creating ./config.status
config.status: creating makefile
config.status: creating config.h
config.status: executing depfiles commands
# ls
2.7.avg.c autoscan.log config.status install-sh missing2.7.main.c config.h configure makefile stamp-h1
aclocal.m4 config.h.in configure.in makefile.am
autom4te.cache config.log depcomp makefile.in
10.#make
make all-am
make[1]: Entering directory `/root/chap-2/autotools'
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT 2.7.main.o -MD -MP -MF .deps/2.7.main.Tpo -c -o 2.7.main.o 2.7.main.c
2.7.main.c: In function ‘main’:
2.7.main.c:8:7: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
2.7.main.c:13:11: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
mv -f .deps/2.7.main.Tpo .deps/2.7.main.Po
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT 2.7.avg.o -MD -MP -MF .deps/2.7.avg.Tpo -c -o 2.7.avg.o 2.7.avg.c
mv -f .deps/2.7.avg.Tpo .deps/2.7.avg.Po
gcc -g -O2 -o 2_7 2.7.main.o 2.7.avg.o
make[1]: Leaving directory `/root/chap-2/autotools'
# ls
2_7 2.7.main.o config.h configure makefile stamp-h1
2.7.avg.c aclocal.m4 config.h.in configure.in makefile.am
2.7.avg.o autom4te.cache config.log depcomp makefile.in
2.7.main.c autoscan.log config.status install-sh missing
11.#./2_7
请输入需要计算的整数个数:4
请输入第1个整数:5
请输入第2个整数:3
请输入第3个整数:26
请输入第4个整数:6
所有4个整数的平均值是: 10.00
jayee 于 2011-07-13 13:57:19发表:
解决,下面一段是应用另一个帖子的,如下:avrg+=var;
avrg+=var;
{
1. 比如编写程序 2_5fun_avg.c ,2_5fun_sum.c,2_5main.c 和 chengji.h
#########################
####2_5fun_avg.c #######
float fun_avg(int var[],int num)
{
float avrg=0.0;
int i;
for(i=0;i
avrg/=num;
return (avrg);
}
####2_5fun_sum.c#######
float fun_sum(int var[],int num)
{
float avrg=0.0;
int i;
for(i=0;i
return (avrg);
}
####2_5main.c#######
#include
#include "chengji.h"
int main()
{
int n,i;
float avg,sum;
printf("请输入需要统计的学生数:");
scanf("%d",&n);
int array[n];
for( i=0;i
printf("请输入第%d学生的成绩:",i+1);
scanf("%d",&array);
}
sum=fun_sum(array,n);
printf("所有的%d个学生的总成绩是: %6.2f\n",n,sum);
avg=fun_avg(array,n);
printf("输入的%d个学生的平均成绩是: %6.2f\n",n,avg);
return 0;
}
####chengji.h#######
float fun_sum(int var[],int num);
float fun_avg(int var[],int num);
##############################
2.写makefile.am
$vi makefile.am
#####################
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=2_5 //最后可执行文件名称
2_5_SOURCES=2_5fun_avg.c 2_5fun_sum.c 2_5main.c //程序
########################
3.$autoscan
##############################
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
#AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_INIT(main,1.0) //最后可执行文件名称,版本
AM_INIT_AUTOMAKE(main,1.0) //增加这一行
AC_CONFIG_SRCDIR([avg.c])
AM_CONFIG_HEADER([config.h]) //C改为M
# 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
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
#AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
AC_INIT(2_5,1.0) //最后可执行文件名称,版本
AM_INIT_AUTOMAKE(2_5,1.0) //增加这一行
AC_CONFIG_SRCDIR([chengji.h])
AC_CONFIG_HEADER([config.h]) //AC_改为AM_,我没改也成功
# 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
################################################################################
4.$aclocal
5.$autoconf
6.$autoheader
7.$automake -a
不行就 再执行一次
8. $./configure
9. $make
10. $./2_5
andy890815 于 2011-07-13 13:42:42发表:
等待高手指教!!!