首页 > 其他分享 >多文件(分模块)的编译过程

多文件(分模块)的编译过程

时间:2023-10-21 20:36:27浏览次数:32  
标签:文件 main 头文件 路径 编译 模块 cal include

有三个文件cal.c、cal.h、main.c

cal.c中是模块的函数实现,cal.h是模块的函数申明,main.c是调用各模块的功能。

#include <> 和#include ""区别:

<>是从linux标准的头文件目录下去找头文件,如/usr/include/、/usr/local/include

""是从当前的编译路径(即当前在哪个路径(pwd命令看),这个就是当前的编译路径)下去找头文件,如果找不到就去标准的头文件路径下找。

通常我们一般创建四个目录存放工程文件:src、obj、include、bin。

src存放源码,obj存放目标文件,include存放头文件,bin存放可执行程序

 

如果cal.c、cal.h、main.c文件在一个文件夹下,gcc cal.c main.c就能编译成功,不用-I指定头文件所在的路径就能找到头文件(预编译时会用到这个头文件),因为cal.h就在当前的编译路径下。

如果cal.h放在include目录下,cal.c main.c放在src目录下,那么就得用-I指定头文件所在目录,让编译器去指定的文件夹去找头文件gcc cal.c main.c -Iinclude

标签:文件,main,头文件,路径,编译,模块,cal,include
From: https://www.cnblogs.com/zj-studyrecoding/p/17779455.html

相关文章

  • 课程模块
    1.课程列表页前端1.前端:新建三个组件-LightCourse.vue-FreeCourse.vue-ActualCourse.vue2配置路由 ActualCourse:<template><divclass="course"><Header></Header><divclass="main">......
  • MinIO实现文件上传与下载
    引入依赖<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>7.1.0</version></dependency> 工具类 MinIoUtils@AutowiredSiMinIoP......
  • Vue验证码模块
    一个普通图形验证码的模块,使用方式如下: 导入模块importrandomfrom'@/util/VerificationCode'使用方式this.randomObj=random({id:'random',api:{url:'/api/getCode',headers:{'Content-Type':'applica......
  • 后端解决一样文件共享问题
    我们上传文件到服务器,有时候很多人的头像或者文件一样,都上传的话会对服务器造成资源浪费。那么就需要判断这个文件是否一样呢。如果一样,我们可以进行资源共享,同时节约了服务器资源。判断是否一样可以用md5算法。MD5是一种常用的哈希算法,用于生成文件的固定长度的唯一标识符。它......
  • linux创建及删除文件节点的命令
     1.手动创建文件节点的命令(mknod):  命令       文件目录&名称   文件类型     主设备号      次设备号mknod          /xxx/xx        c         120       ......
  • 1、构建目录必须和源文件为同级目录
    复制工程后路径发生变化,重新构建运行时会出现“QT构建目录必须和源目录为同级目录”提示,解决办法如下:方法一:点击project(项目)->然后,看看Buitdirectory(构建目录),看看这里是不是文字变成了红色,如果是红色的路径,说明路径是错误的,改一个你自己的路径即可(但要和工程目录平级)。注......
  • SpringBoot项目的POM文件分析
    pom.xml内容如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.ap......
  • go mod tidy总是安装最新依赖,如何查找哪个模块导致某个包安装最新依赖,提供一个小工具
    安装:goinstallgithub.com/jan-bar/interesting/findModVer@latest执行:findModVerd:\myproject结果如下图所示:根据结果可以找到哪个依赖导致google.golang.org/grpcv1.45.0使用了这个版本,这样每次执行gomodtidy会自动修改该模块到v1.45.0版本。我看了下github.com/spf1......
  • 深入理解linux文件
    一、linux的文件存储假如有一个用户在linux系统中编辑了一个文件,编辑完内容后,关闭编辑器时会问用户改如何命名这个文件,设置完名称之后会选择一个目录将该文件保存到指定目录下,在这个例子中包含了linux系统中与文件相关的三个组成部分数据:就是文件的内容,保存在一个叫data(数据块)......
  • linux内核编译安装(Ubuntu替换内核)
    前言:Ubuntu替换内核一般是不会删除自己Ubuntu里面的东西的(只是内核改变,其它影响,放心搞就是了,而且可以变回原来的内核)实验环境:OS:Ubuntu20.04.2LTSOldKernel:linux5.15.0NewKernel:linux5.15.0(我测试过的只有原版本,升级其它版本试了不能开机)注:查看当前内核版本命令"uname......