当前位置: 首页 > news >正文

[项目][WebServer][Makefile Shell]详细讲解

目录

  • 1.Makefile
  • 2. build.sh
  • 3.test.sh


1.Makefile

  • 为了方便构建项目,并将其发布,使用Makefile来管理构建项目
bin = httpserver
cgi = test_cgi
cc = g++
GLD_FLAGS = -std=c++11 -D DEBUG_SHOW
LD_FLAGS = $(GLD_FLAGS) -lpthread
src = main.cc
curr = $(shell pwd).PHONY:ALL
ALL:$(bin) $(cgi)$(bin):$(src)$(cc) -o $@ $^ $(LD_FLAGS)$(cgi):$(curr)/CGI/*.cc$(cc) -o $@ $^ $(GLD_FLAGS).PHONY:output
output:mkdir outputcp $(bin) outputcp -rf wwwroot outputcp $(cgi) output/wwwrootcp ./CGI/shell_cgi.sh output/wwwrootcp ./CGI/python_cgi.py output/wwwroot.PHONY:clean
clean:rm -f $(bin) $(cgi)rm -rf output

2. build.sh

  • 在项目后期,构建项目并发布时,要执行以下指令,略显繁琐,所以将其放进shell脚本内
    • make clean
    • make
    • make output
  • 后面构建项目时,只需要./build.sh,则可一键构建项目,并将其发布
#!/bin/bashmake clean
make
make output

3.test.sh

  • 在项目后期,测试项目时,为测试发布版本,要执行以下指令,略显繁琐,所以将其放进shell脚本内
    • ./build.sh
    • cd ./output
    • ./httpserver PORT
  • 后面测试项目时,只需要./test.sh,则可一键发布,并切换至发布目录下,直接运行项目
#!/bin/bash./build.sh
cd ./output
./httpserver PORT
http://www.lryc.cn/news/439859.html

相关文章:

  • ElementUI大坑Notification修改样式
  • vivado中的diagram
  • 项目实现:云备份②(文件操作、Json等工具类的实现)
  • ‌内网穿透技术‌总结
  • Git使用—把当前仓库的一个分支push到另一个仓库的指定分支、基于当前仓库创建另一个仓库的分支并推送到对应仓库(mit6828)
  • windows11+ubuntu20.04.6双系统安装
  • 如何通过 PhantomJS 模拟用户行为抓取动态网页内容
  • ARM驱动学习之8 动态申请字符类设备号
  • TCP.IP四层模型
  • 极狐GitLab DevSecOps 功能合集(七大安全功能)
  • 进阶SpringBoot之异步任务、邮件任务和定时执行任务
  • 【设计模式-桥接】
  • JVM JMM 专题篇 ( 12000 字详解 )
  • 【C++】—— list 模拟实现
  • Redis主要问题
  • vue3 ref的用法及click事件的说明
  • 通信工程学习:什么是HFC混合光纤同轴电缆
  • 怎么浏览URL的PDF文件呢
  • 【2025届华为秋招机考三道编程题之一】华为校招留学生软件开发工程师-真题机考笔试/(200分)- 跳格子3(Java JS Python C)
  • 高性能缓存利器:Caffeine 在 Spring Boot 中的应用
  • pWnOS的第二种全新解法(ssh私钥破解、webmin漏洞提权)
  • Maven入门学习笔记
  • linux驱动开发-arm汇编基础
  • 【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新
  • [数据集][目标检测]无人机识别检测数据集VOC+YOLO格式6986张1类别
  • 基于SSM的二手交易管理系统的设计与实现 (含源码+sql+视频导入教程+文档)
  • linux-centos 设置系统时间
  • 【Linux基础】冯诺依曼体系结构操作系统的理解
  • 算法题解:斐波那契数列(C语言)
  • SSM 框架 个人使用习惯 详细