首页 > 其他分享 >C语言项目工程目

C语言项目工程目

时间:2024-03-16 11:23:24浏览次数:15  
标签:可执行程序 头文件 工程 项目 静态 C语言 编译 存放 目录

1.文件类型

  头文件(Header Files):通常以.h作为扩展名,头文件包含了程序中所需要的各种函数、变量、宏定义等的声明,以及各种库函数的引用等

  源文件(Source Files):通常以.c作为扩展名,源文件包含了程序的实现代码

  库文件(Library Files):库文件是一些预编译好的对象文件的集合,包含了大量的函数和变量的实现代码

  Makefile:Makefile是一个用于编译程序的脚本文件,可以自动化编译过程,避免手动编译过程中的错误和重复操作

  文档(Documentation):通常以README.md的格式编写,文档包含了程序的说明、说明书、使用手册等,可以帮助用户更好地了解和使用程序

2.简单目录结构

project/

|—— include/                存放头文件

  | |—— header1.h

  | | —— header2.h

|—— src/                        存放源文件

  | |—— file1.c

  | |—— file2.c

|—— lib/                        存放库文件

  | |—— lib1.a

  | |—— lib2.a

|—— Makefile                用于编译程序

|—— README.md            用于说明项目的信息和用法

|—— LICENSE                用于说明项目的版权和许可整信息

3.复杂目录结构

project/

|—— bin  存放产物的目录,产物可能是静态库、动态库、可执行程序

|—— build  存放Makefile的目录

    | |—— Makefile  分为编译动态库、静态库,和编译可执行程序

|—— lib  编译过程中依赖的动态库、静态库

|—— docs  存放工程的设计文档、资料,便于后续维护人员理解整个工程

|—— include  存放头文件的目录
    
    | |—— inner  一般是工程内部使用的头文件
   
    | |—— xx1  代表存放需要和其他工程交互的头文件目录,一般采用映射方式保持同步

    | |—— xx2

|—— patch  存放补丁文件的目录

|—— src  存放源文件的目录

|—— test  存放工程测试代码的目录

|—— tool  编译工程依赖的工具目录

 4.其他

  1) 库文件

    库文件的提供方式:静态库/动态库 + 头文件说明。使用库的开发者需要根据头文件来使用库;

    库文件的实质:将很多.o文件打包在一起

    库文件作用:加快项目开发、保密、便于维护代码

  2)静态库

    命名:libxxx.a

    可执行程序不依赖静态库,可执行程序的运行环境无需移植静态库

  3)动态库

    命名:libxxx.so

    可执行程序依赖动态库,可执行程序运行的环境里必须存在对应的动态库

参考文章地址:

  1. C 语言完整项目的结构说明_c语言项目结构-CSDN博客

  2. 实际工作开发中C语言工程的目录结构分析_c语言目录结构-CSDN博客

  3. 静态库和动态库介绍以及Makefile_makefile编译动态库和静态库-CSDN博客

标签:可执行程序,头文件,工程,项目,静态,C语言,编译,存放,目录
From: https://www.cnblogs.com/simonalwayson/p/18076819

相关文章

  • 实验 1 C语言开发实验环境和数据类型、运算符、表达式
     ......
  • 访问JavaWeb项目报405错误
     一、问题由来一位朋友最近在学习JavaWeb开发,做测试时出现问题,页面报了405错误,HTTPStatus405?MethodNotAllowed如果是只出现一次,那也还好。主要是这个错误他遇到过多次,第一次就是刚开始学习Servlet的时候,还有一次是在学习文件上传的时候出现的。因此就特意写一篇博......
  • 转型AI产品经理(1):5点技巧把控AI项目时间
    随着李一舟的AI课程话题的讨论火热,可以看出大家对AI行业的关注,记得李一舟的广告词里说产品经理一定要学AI!!!那产品经理该学AI的什么内容呢,本系列内容将为大家逐步介绍,作为一名传统互联网产品经理,转型为AI产品经理,需要了解那些内容,算法,模型当然是要了解的,但是这里要先讲一个AI项目......
  • 七个项目掌握freertos
    1、闪烁LED:最基本的示例项目,涉及到创建一个简单的任务,用于控制LED的闪烁。这个项目会教你如何初始化FreeRTOS并创建任务。#include"FreeRTOS.h"#include"task.h"#defineLED_PIN(某个GPIO引脚)voidvBlinkTask(void*pvParameters){while(1){//Tog......
  • 关于软件项目开发的分析与设计
    小组第二周作业https://files.cnblogs.com/files/blogs/819035/小组第二周作业.rar?t=1710550848&download=true小组第三周作业https://files.cnblogs.com/files/blogs/819035/小组第三周作业.rar?t=1710551738&download=true第三周作业一视频分享链接:https://pan.baidu.com......
  • 实验1 C语言输入输出和简单程序编写
    task1.1#include<stdio.h>intmain(){ printf("O\n"); printf("<H>\n"); printf("II\n"); printf("O\n"); printf("<H>\n"); printf("II\n"); return0;}task1.2#......
  • 百度 Linux 运维工程师面试真题
    百度Linux运维工程师面试真题百度面了好久了,两个月了,估计都快成馊面了,一跟面条在走边边一不小心掉进了大海,于是就有了汤面_经历非技术总结就两句话,幸运的是在朋友的帮助下顺利通过笔试,还认识了一帮super牛B的人,不幸的是最终还是由于主观客观擦肩而过~~我投的是lin......
  • 【毕设级项目】基于嵌入式的智能家居控制板(完整工程资料源码)
    基于嵌入式的智能家居控制板演示效果基于嵌入式的智能家居控制板前言:        随着科技的不断进步,物联网技术得到了突飞猛进的发展。智能家居是物联网技术的典型应用领域之一。智能家居系统将独立家用电器、安防设备连接成一个具有思想的整体,实现家居设备的智能管......
  • PTA- - -个位数统计(C语言)
    Hello,好久没更新啦,今天给大家讲解一下PTA平台上面的“个位数统计”这道题吧~题目是要统计一个数字每个位上数字出现的次数。下面是一个解决方案的思路和相应的C语言代码:思路:初始化一个大小为10的数组,用于计数每个数字(0-9)出现的次数。读取输入的数字N作为字符串,这样可......
  • 实验1_C语言输入输出和简单程序应用编程
    task11#include<stdio.h>2#include<stdlib.h>3intmain()4{56printf("o\to\n");7printf("<H>\t<H>\n");8printf("II\tII\n");910system("pa......