LINUX系统程序设计中C/C++编程工具使用

LINUX系统程序设计中C/C++编程工具使用

一、实验目的

掌握gcc编译器的使用
掌握gdb调试器的使用
掌握make工程管理器的使用
理解Makefile文件的格式,掌握Makefile文件的编写规则
掌握automake autoconfigure等工具的用法.

二、实验软硬件环境

硬件:PC机  一台
软件:Ubuntu系统

三、实验内容

有一个简单的工程,其目录和文件结构如下所述:工程的最高层目录test中有一个hello.c文件和lib、include两个子目录。在lib目录中有一个print.c文件,在include目录中有一个print.h文件。
(1)为该工程编写automake的输入配置脚本Makefile.am,configure.ac
(2)请上机练习使用Gnu Autotools工具为该工程创建Makefile文件,并编译该工程。

四、实验结果与讨论

建立Test文件夹,在文件夹中创建hello.c文件
LINUX系统程序设计中C/C++编程工具使用_第1张图片

在hello.c中输入代码
LINUX系统程序设计中C/C++编程工具使用_第2张图片
在print.c中输入代码
LINUX系统程序设计中C/C++编程工具使用_第3张图片
在print.h中输入代码
LINUX系统程序设计中C/C++编程工具使用_第4张图片
编写Test和lib中的Makefile.am 文件
这里写图片描述
LINUX系统程序设计中C/C++编程工具使用_第5张图片
SUBDIRS = lib

AUTOMAKE_OPTION = foreign
bin_PROGRAMS = hello
hello_SOURCES = hello.c
include_HEADERS=./include/print.h
hello_LDADD= ./lib/libprint.a
LINUX系统程序设计中C/C++编程工具使用_第6张图片
noinst_LIBRARIES = libprint.a
libprint_a_SOURCES = print.c print.h
运行 autoscan并修改configure.scan且更名为configure.ac
这里写图片描述
LINUX系统程序设计中C/C++编程工具使用_第7张图片
AC_INIT(hello,0.01 )
AM_INIT_AUTOMAKE
AC_PROG_RANLIBLINUX系统程序设计中C/C++编程工具使用_第8张图片
输入并执行”aclocal”命令
输入并执行”autoconf”命令
输入并执行”autoheader”命令
输入并执行”automake –add-missing”命令
输入并执行”./configure”命令,即可生成Makefile文件LINUX系统程序设计中C/C++编程工具使用_第9张图片LINUX系统程序设计中C/C++编程工具使用_第10张图片
输入并执行”make “命令,编译文件,生成 hello 文件
” ./hello “执行hello文件,运行结果如下:
LINUX系统程序设计中C/C++编程工具使用_第11张图片

讨论、实验过程的体会、心得、进一步的思考:

刚开始无法安装autoconf这个软件,因为无法获得锁,于是强制解锁安装了autoconfLINUX系统程序设计中C/C++编程工具使用_第12张图片

刚开始卡在不会重命名文件,后来知道了mv a b就是把a重命名为b
不小心把mv打成了rm误删了文件于是又重新写了一遍
刚开始要改成configure.ac而不是.in
LINUX系统程序设计中C/C++编程工具使用_第13张图片

在执行automake –add-missing时缺失很多文件,需要用touch NEW READEME **等等(**为缺失的文件名)来补齐文件
LINUX系统程序设计中C/C++编程工具使用_第14张图片

后来生成make文件的时候一直报错,找了很久的错误。后来找到问题是因为直接在word上打完复制了代码,字符是中文字符而不是英文字符导致一直出错,改好后终于可以运行了。
LINUX系统程序设计中C/C++编程工具使用_第15张图片
最终打出来Hello,the Linux world!

你可能感兴趣的:(LINUX系统程序设计中C/C++编程工具使用)