Linuxc - 多c文件程序编译执行
多文件使用,一起编译
定义max.h
int max(int a,int b);
定义max.c
#include "max.h"
int max(int a,int b)
{
if (a > b) {
return a;
} else {
return b;
}
}
定义主c文件
#include <stdio.h>
#include "max.h"
int main()
{
int a1 = 22;
int a2 = 33;
int maxNum = max(a1,a2);
printf("the max value is %d\n",maxNum);
return 0;
}
编译执行!
root@jiqing-virtual-machine:~/cspace/les2# gcc max.c main.c -o main.out
查看
root@jiqing-virtual-machine:~/cspace/les2# ./main.out
the max value is 33
分别编译
头文件的好处,一次编译,多次使用。
只需要引入声明就可以了。
root@jiqing-virtual-machine:~/cspace/les2# gcc max.o min.o main.c
main.c: In function ‘main’:
main.c:8:18: warning: implicit declaration of function ‘max’ [-Wimplicit-function-declaration]
int maxNum = max(a1,a2);
^
main.c:9:18: warning: implicit declaration of function ‘min’ [-Wimplicit-function-declaration]
int minNum = min(a1,a2);
^
没有声明,会报错。
#include <stdio.h>
//#include "max.h"
//#include "min.h"
int main()
{
int a1 = 22;
int a2 = 33;
int maxNum = max(a1,a2);
int minNum = min(a1,a2);
printf("the max value is %d\n",maxNum);
printf("the min value is %d\n",minNum);
return 0;
}
将注释的去掉就可以了。
单个编译max.c,min.c
root@jiqing-virtual-machine:~/cspace/les2# gcc -c max.c -o max.o
root@jiqing-virtual-machine:~/cspace/les2# gcc -c min.c -o min.o
编译成max.o和min.o之后,计算机就能够识别了。
以后可以在多个c文件中使用。只需要引入头文件h就可以了。
root@jiqing-virtual-machine:~/cspace/les2# gcc max.o min.o main.c -o main.out
root@jiqing-virtual-machine:~/cspace/les2# ./main.out
the max value is 33
the min value is 22
Linuxc - 多c文件程序编译执行的更多相关文章
- C程序编译执行过程
C程序编译执行过程 认识C编译执行过程,是C学习的开端. 简单说C语言从编码编译到执行要经历一下过程: C源代码 编译---->形成目标代码,目标代码是在目标机器上运行的代码. 连接-- ...
- Java文件手动编译执行步骤
Java编译执行步骤: 1)将 Java 代码编写到扩展名为 .java 的文件中.2)通过 javac 命令对该 java 文件进行编译.3)通过 java 命令对生成的 class 文件进行运行. ...
- ubuntu 16.04 上opengl 的安装以及例子程序编译执行
因为最近在移植 Qt5.7 + opengl , 遇到了难以越过的山峰,没有办法,试着在 ubuntu 16.04上将 opengl 配置以下,记录: 安装相关的库: sudo apt-get ins ...
- c++应用程序文件的编译过程
这里讲下C++文件的编译过程及其中模板的编译过程: 一:一般的C++应用程序的编译过程. 一般说来,C++应用程序的编译过程分为三个阶段.模板也是一样的. 在cpp文件中展开include文件 ...
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
- 编译 & 执行 C++ 程序
编译 & 执行 C++ 程序接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它.下面是简单的步骤: 打开一个文本编辑器,添加上述代码.保存文件为 hello.cpp.打开命令提 ...
- [转]c++应用程序文件的编译过程
原文地址 这里讲下C++文件的编译过程及其中模板的编译过程: 一:一般的C++应用程序的编译过程. 一般说来,C++应用程序的编译过程分为三个阶段.模板也是一样的. 在cpp文件中展开inclu ...
- 问题:程序编译通过,但是执行时报错:coredump
问题描述: 在一个客户现场搭建环境时,遇到了一个棘手的问题,C代码编译通过后,无法正常运行,启动会出现“coredump”错误. 运行环境为新搭建的AIX6.1,数据库为Oracle11.2.0.2. ...
- C程序编译和执行
编译 & 执行 C 程序 首先准备一个源码文件 hello.c 键入如下代码: #include <stdio.h> int main() { /* 我的第一个 C 程序 */ p ...
随机推荐
- Struts2内部执行过程
首先是Struts2的流程图. 一.当有一个请求的时候.执行以下流程. 1 客户端初始化一个指向Servlet容器的请求: 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做Act ...
- springboot 注册服务注册中心(zk)的两种方式
在使用springboot进行开发的过程中,我们经常需要处理这样的场景:在服务启动的时候,需要向服务注册中心(例如zk)注册服务状态,以便当服务状态改变的时候,可以故障摘除和负载均衡. 我遇到过两种注 ...
- 微信小程序跳一跳辅助程序(手动版)
最近,微信官方推出了demo小程序游戏<跳一跳>,这个游戏操作简单,容易上手,却又不容易获得高分,受到很多人的喜爱(emm...这游戏有毒).自己也尝试了玩了几次,作为一个手残+脑残的资深 ...
- docker:(4)利用WebHook实现持续集成
研发小伙伴可能对下列操作步骤会深有体会 写代码-->提交代码-->打包-->发布 在项目调试测试阶段,可能经常需要重复上面的步骤,以便将最新代码部署到特定环境供测试人员或其他人员使用 ...
- kylin客户端(python编写)不能按照预期的segment进行rebuild
kylin_client_tool 提供了对cube进行BUILD,REBUILD,MERGE功能,其中REBUILD却不能达到预期的效果按照指定的segment执行. 场景: 当我在kylin we ...
- 【译】巧用CSS变量实现自动前缀
转:https://www.h5jun.com/post/autoprefixing-with-css-variables-lea-verou.html 最近,当我在制作 markapp.io 这个小 ...
- 购物车css样式效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- SpringMVC连接MongoDB操作数据库
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Soft ...
- 385cc412a70eb9c6578a82ac58fce14c md5破解
在线破解很方便,你可能几秒钟就可以破解得到MD5原码...但是在线破解也不是万能的 也有查不到的或者需要收费的(土豪略过这句话)...下面推荐个网站md5.geekzh.com 所有MD5免费查询 E ...
- deeplearning.ai 卷积神经网络 Week 4 特殊应用:人脸识别和神经风格转换 听课笔记
本周课程的主题是两大应用:人脸检测和风格迁移. 1. Face verification vs. face recognition Verification: 一对一的问题. 1) 输入:image, ...