第三周Linux编程实例练习
通过以下程序来练习
head.h
# ifndef HEAD_H
#define HEAD_H
#include <stdio.h>
int add(int,int);
int sub(int,int);
int mul(int,int);
double div(int,int);
#endif
add.c
#include "head.h"
int add(int a,int b)
{
return a+b;
}
sub.c
#include "head.h"
int sub(int a,int b)
{
return a-b;
}
mul.c
#include "head.h"
int mul(int a,int b)
{
return a*b;
}
div.c
#include "head.h"
double div(int a,int b)
{
return a/b;
}
main.c
#include "head.h"
int main(void)
{
int a,b;
printf("enter two numbers:");
scanf("%d %d",&a,&b);
printf("add:%d\n",add(a,b));
printf("sub:%d\n",sub(a,b));
printf("mul:%d\n",mul(a,b));
printf("div:%f\n",div(a,b));
return 0;
}
编译和运行以上代码:

制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.a静态库;
main.c使用静态库;

制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.so共享库;
main.c使用共享库;

编译目标文件为testmymath的makefile


遇到的问题
- 1、程序编译出现问题
- 解决方法:在head.h和main.c中缺少头文件,分别在head.h中添加#include "stdio.h",在main.c中添加#include "head.h"的头文件
- 2、makefile的编写出现问题

- 解决方法:发现这个错误是由makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始,在.vimrc文件中发现没有设置tab键的默认长度,然后在.vimrc中添加如下配 置:set tabstop=4,问题解决
第三周Linux编程实例练习的更多相关文章
- 2017-2018-2 1723《程序设计与数据结构》第十一周作业 & 实验三 & (总体)第三周结对编程 总结
作业地址 第十一次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1933 (作业界面已评分,可随时查看,如果对自己的评分有 ...
- 三、MapReduce编程实例
前文 一.CentOS7 hadoop3.3.1安装(单机分布式.伪分布式.分布式 二.JAVA API实现HDFS MapReduce编程实例 @ 目录 前文 MapReduce编程实例 前言 注意 ...
- 第三周linux学习
实验二 Linux下C语言编程基础 一.实验目的 1. 熟悉Linux系统下的开发环境 2. 熟悉vi的基本操作 3. 熟悉gcc编译器的基本原理 4. 熟练使用gcc编译器的常用选项 5 .熟练使用 ...
- 第三周LINUX学习笔记
周期性任务丶find 文件查找:find命令 locate :在数据库中查找,非实时查找,精确度不高,查找速度快,模糊查找 /tmp/passwad/a.textfind:实时查找:速度慢 ,精确 ...
- Linux内核及分析 第三周 Linux内核的启动过程
实验过程: 打开shell终端,执行以下命令: cd LinuxKernel/ qemu -kernel linux-3.18.6/arch/x86/boot/bzImage-initrd rootf ...
- 第三周Linux学习报告
Linux内核源代码简介: arch/x86中内容重点关注 init目录重要,内核启动相关的代码基本上都在init目录下.如main.c等.Start_kernel函数相当于普通C程序的main函数. ...
- 20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结
20172325『Java程序设计』课程 结对编程练习_四则运算第三周阶段总结 结对伙伴 学号:20172306 姓名:刘辰 在这次项目的完成过程中刘辰同学付出了很多,在代码的实践上完成的很出色,在技 ...
- Linux网络编程实例解析
**************************************************************************************************** ...
- linux下socket编程实例
linux下socket编程实例一.基本socket函数Linux系统是通过提供套接字(socket)来进行网络编程的.网络的socket数据传输是一种特殊的I/O,socket也是一种文件描述符.s ...
随机推荐
- WPF简单模拟QQ登录背景动画(转)
介绍 之所以说是简单模拟,是因为我不知道QQ登录背景动画是怎么实现的.这里是通过一些办法把它简化了,做成了类似的效果 效果图 大体思路 首先把背景看成是一个4行8列的点的阵距,X轴Y轴都是距离70.把 ...
- Oracle终极数据恢复,孰弱孰强(DUL vs AUL)
这几天在帮朋友作数据恢复,由于已经到了无可救药的地步,只能使用终极手段进行恢复,直接从文件中读取数据进行恢复. 在恢复过程中反复对比了DUL和dcba的AUL,感觉到了两者的不同. DUL在处理文件损 ...
- [转]你真的了解setTimeout和setInterval吗?
原文: http://qingbob.com/difference-between-settimeout-setinterval/ setTimeout和setInterval的基本用法我们一带而过: ...
- tensorflow学习笔记(三十九):双向rnn
tensorflow 双向 rnn 如何在tensorflow中实现双向rnn 单层双向rnn 单层双向rnn (cs224d) tensorflow中已经提供了双向rnn的接口,它就是tf.nn.b ...
- 洛谷 1600 (NOIp2016) 天天爱跑步——树上差分
题目:https://www.luogu.org/problemnew/show/P1600 看TJ:https://blog.csdn.net/clove_unique/article/detail ...
- 今天去python官网下载包安装的时候的问题记录
去官网下载了 tar压缩包 放到了site-packages下解压 然后使用 python setup.py install 安装 安装完后,所要引用的模块文件居然还在解压出来的压缩文件里面,导致无法 ...
- chrome浏览器手动添加印象笔记剪藏插件
标签(空格分隔): chrome浏览器,日常办公 一直为每次从网页上复制内容之后,还需要再去复制对应的网址,倍感麻烦.之前偶尔这样操作还可以,最近在学习新东西,要保留下来的网页实在太多,而且不利于分类 ...
- .Net 框架实现AOP(动态代理实现AOP,本文为翻译)
在上一节,我们将静态实现AOP,但是对于一个大型项目,要想为每个类,每个方法都去实现AOP ,进行日志记录和权限验证似乎是不可能的. 即使可能对于成百上千个类维护,也是很难维护.所以今天的主题就是如标 ...
- js操作一般文件和csv文件
js操作一般文件和csv文件 将文本文件读成字符串 <input type="file" id="upload"> document.getElem ...
- oracle数据库中函数的递归调用
如有下面的表结构AAAA,用一个字段prev_id表示记录的先后顺序,要对其排序,需要用的递归函数 ID PREV_ID CONT 99 a 23 54 d 21 23 e 54 33 c 33 ...