首页/新闻资讯/正文详情

SJX Make,纯C实现的智能make程序,无需makefile脚本,全自动,适合c项目

发布时间:2026/9/27 9:56:34 来源:云帆数科 栏目:资讯中心
SJX Make,纯C实现的智能make程序,无需makefile脚本,全自动,适合c项目
之前发布的纯c单h文件make系统 https://github.com/shajunxing/sjx-make/blob/main/make.h.md ,依旧需要在项目源文件每次变更后调整编译脚本太麻烦。于是我一怒之下用400行代码完成了“一次编写处处运行”自动分析头文件依赖关系自动增量、并行编译。约定项目目录结构是这样的项目名 -- src所有源代码头文件都平铺在src里不再分子目录当然也可以有子目录但我比较懒自己的项目都很简单。执行smake会编译所有c文件然后把所有不带main函数的合并为库文件默认名字同项目名。所有带main函数的各自单独生成同名可执行程序。编译后的目录如下项目名 -- bin 所有可执行程序和库文件 -- src -- tmp 中间过程产生的其它文件比如目标文件编译支持调试和发布模式支持动态也就是生成动态库.dll .so和静态链接支持windows和posix兼容系统。想玩的可以在 https://github.com/shajunxing/sjx-make/releases 下载 windows 可执行程序。命令行参数如下C:\smake --help Usage: smake [clean|debug|release|mono|static|dynamic|-h|--help] clean cleanup generated binaries debug with debug symbols release no debug symbols, optimize for speed mono generate monolithic .exe static static build, link with dynamic crt dynamic seperate to .dll .exe, link with dynamic crt Default is: release static -h, --help show help More options can be set in makefile, see examples.同时也支持简单的配置文件为了方便编辑器语法高亮也取名为makefile格式如下# 开头的是注释行# Configuration file for SJX Smart Make System. # Values shown below are default values. # Build mode, d is with debug symbols, r is no debug symbols and optimize for speed # buildr # Linking model, m is all static, s static project and dynamic crt, d is all dynamic # linkages # Pattern to match main function # main_patint main( # Lib and dll name, default is project folder name # lib_name # Extra options for linker # ex_opts_windows # ex_opts_posix # GetUserNameA requires advapi32.lib ex_opts_windowsuser32.lib gdi32.lib imm32.lib advapi32.lib winmm.lib # suppress fucking stupid readline warnings Using xxx in statically linked applications requires at runtime the shared libraries ... ex_opts_posix-lm -lreadline -lncurses -ltinfo -Wl,--no-warnings

相关推荐

《创业之路》-964-中国上古民间神话,以及如何过渡到人族统治的?在这个过程中,有哪些关键角色?
《创业之路》-964-中国上古民间神话,以及如何过渡到人族统治的?在这个过程中,有哪些关键角色?

上古神话:从神之时代过渡到人族统治整个演进主线:创世诸神时代 →人神混杂时代 →绝地天通(分水岭)→三皇人文教化 →五帝部落联盟 →夏朝世俗王权确立 下面梳理每一个阶段的关键角色、核心事迹、历史定位(古籍传说&am… · 2026/9/27 9:56:28

用 Docker Compose 一键搭建 DataHaven 本地开发网络:节点编排、密钥注入与故障排查实战
用 Docker Compose 一键搭建 DataHaven 本地开发网络:节点编排、密钥注入与故障排查实战

区块链存储Web3 【免费下载链接】datahaven An EVM compatible Substrate chain, powered by StorageHub and secured by EigenLayer 项目地址: https://gitcode.com/gh_mirrors/da/datahaven 点击查看 免费下载 本篇技术指南以 DataHaven 仓库中的 DOCKER-COMPOSE… · 2026/9/27 9:56:28

Substrate Society Pallet 深度解析:基于 FRAME 的成员制经济游戏设计与实现
Substrate Society Pallet 深度解析:基于 FRAME 的成员制经济游戏设计与实现

区块链开发框架后端 【免费下载链接】substrate Substrate: The platform for blockchain innovators 项目地址: https://gitcode.com/gh_mirrors/su/substrate 点击查看 免费下载 导读 本文围绕 Substrate 仓库中的 frame/society(pallet-society&… · 2026/9/27 9:56:22

搞定备案后,优秀企业门户网站多少钱能落地
搞定备案后,优秀企业门户网站多少钱能落地

搞定备案后,优秀企业门户网站多少钱能落地 做网站最怕的不是代码写不出来,而是备案流程一头雾水,卡在半路动弹不得。很多老板问优秀企业门户网站多少钱,其实价格透明得很,但隐性成本才要命。我见过太多项目因为备案材料填错,来回折腾两个月,服务器费用… · 2026/9/27 10:47:49

STM32嵌入式C++工程实战:从CMake构建到Renode仿真运行
STM32嵌入式C++工程实战:从CMake构建到Renode仿真运行

1. 为什么“看了三篇还没写一行代码”反而是对的如果你是从这个系列的第一篇一路追过来的,大概率心里已经憋了一句话:“看了三篇了,一行都没让我写呢。”我完全理解这种感受。前三篇我们聊了工具链的选型逻辑、工程目录该怎么摆、构建系统为什… · 2026/9/27 10:47:43

DDR为何坚持并行总线而非SerDes?低延迟与确定性时序的底层逻辑
DDR为何坚持并行总线而非SerDes?低延迟与确定性时序的底层逻辑

1. 为什么DDR坚持用并行总线,而不是像PCIe那样上SerDes?你刚接触高速数字电路设计时,大概率会被这个问题卡住:明明SerDes在PCIe、USB、SATA、以太网里大放异彩,动辄几十Gbps的速率,布线还省事——一根差分对… · 2026/9/27 10:47:43

LeetCode:题目解答复盘(4)
LeetCode:题目解答复盘(4)

4的幂 & 破冰游戏 在这里记录一下这两道题的题目分析、难点以及解题思路,希望能和大家一起交流进步! 题目一:4的幂 (Power of Four) 📝 题目分析 给定一个整数 n,编写一个函数来判断它是否是 4 的幂次方。如果是&a… · 2026/9/27 10:47:43

PCM与WAV有什么区别?RIFF文件结构、采样参数与Python检查脚本
PCM与WAV有什么区别?RIFF文件结构、采样参数与Python检查脚本

语音模型输入异常时,不应先默认模型有问题。播放器能打开 .wav 文件,只说明某个播放器能够识别并解码它,不代表它满足模型约定的采样率、声道、位宽和编码格式。 本文将完成四件事: 区分 PCM 数据与 WAV 容器;拆解 R… · 2026/9/27 10:47:37

新手入门搜索引擎推广软件选型避坑指南
新手入门搜索引擎推广软件选型避坑指南

新手入门搜索引擎推广软件选型避坑指南 域名解析指向哪台服务器?SSL证书怎么配才不报错?很多刚入行搞网站的朋友,在这一步就卡住了。 域名服务器搞不懂 ,是新手入门建站最大的拦路虎,比写代码还让人头大。 今天咱们不聊虚的,直接拆解… · 2026/9/27 10:47:37

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码