C 简易基础开发框架 - simple c
引言
一个为 简单高效而生的 简易跨平台的 纯C开发框架.
githup上源码 https://github.com/wangzhione/sconsole_project
请容我细说 simple c的优势.
1.适合新手,刚开始思考开源框架了. 这个框架设计和代码都容易
2.稀缺,C 的开源框架,要么很出名, 难度大, 要么就没有, 这里定位是中等左右
3000 - 5000 行代码量没有过多的网络层,图形层东西,适合语法,逻辑开发层研究.
3.特别适合在校生, 学习. 刚上学的时候,用了这个框架最开始绉形, 为老师做数据统计分析的
更好的发展, 以个人读书经验而言. 在window上比这个框架 学习用处更大我就觉得
自制编程语言 那位大牛 写的两个框架 , 大家可以试试
对于 linux , 毕竟linux上优秀的开源框架太多了. 前提你能力够好,否则你也看不懂.
倒不如看这个. 简单还能改造成自己的框架.
在此声明,这个框架随便改, 随便玩, 不介意. 都是你的. 心情好,还可以免费帮你维护
修复一下.
前言
这个项目刚发出去, 比较简单. 这里会详细介绍一下.经过仔细思考, 这个项目开发
侧重点在window上,测试侧重点在linux上, 发布侧重点也在linux上. 为什么呢. 容菜鸟我普及一下.
1. 同等条件下linux程序员 编程水平比 window程序厉害
因为linux 的学习成本,研究成本比window高很多, 需要自己折腾很久. 对于同样的知识.
2. window 上最大优势是 开发效率高, 很方便的查看源码. 因为有宇宙最强IDE VS 旗舰版.
所以总结是, 要想提高技术,研究linux开发,要想提升工作开发效率,用vs. 我这里采用的思路是 使用VS开发
代码最初的demo,后面放到 linux上 详细测试调优.
扯完了 先看 window 上 simple c 结构
上面两个图, 就是最终项目开发框架图. 源码见git, 也可以做成项目模板. 后面再说了.
看一下 linux上项目框架图
到这里基本对这个项目有了大概的了解了. 下面会细细说明作用的.
正文
原本想主打linux,后面觉得别说linux框架NB的无数,unix的框架更是望其项背. 后面还是猥琐一下,在window 上
说说纯C语法开发吧. 下面那就开始吧.
window 上使用说明
说的都是大白文,走个流程
首先是main 文件夹
这里主要放的是主要运行模块代码,对外用的,测试用的. 上面几个test_*.c 代码都是相应的 模块测试代码
后面 readme 文件夹
help.txt 这里是关于VS2015 使用上面的一些配置
module 是模块代码文件夹
细分 pthread 模块文件夹
pthread for window上代码,个人修改了冲突,让其能够在当前系统上运行
struct 文件夹
系统内部使用的 数据结构
schead 文件夹
保存了开发中用的 宏定义, 各种辅助模块,文件,日志,配置, 原子锁等.
总的而言框架就这样了. 再细说 请查看我以前 写的博文 C 基础框架那些库的代码设计
介绍的很详细.
linux 上使用说明
linux上 代码比window精简了很多. 因为linux系统内置很多模块. 从这里都能看出 linux从性能上比window高效太多了.
也就图形上研究人员少,有点薄弱. 目前网络层linux 优势大. 图形层window优势大.
还有需要说的一点是 linux 上编译步骤需要我们自己写. Makefile 文件如下
C = gcc
DEBUG = -g -Wall -D_DEBUG
#指定pthread线程库
LIB = -lpthread -lm
#指定一些目录
DIR = -I./module/schead/include -I./module/struct/include
#具体运行函数
RUN = $(CC) $(DEBUG) -o $@ $^ $(LIB) $(DIR)
RUNO = $(CC) $(DEBUG) -c -o $@ $^ $(DIR) # 主要生成的产品
all:test_cjson_write.out test_csjon.out test_csv.out test_json_read.out test_log.out\
test_scconf.out test_tstring.out #挨个生产的产品
test_cjson_write.out:test_cjson_write.o schead.o sclog.o tstring.o cjson.o
$(RUN)
test_csjon.out:test_csjon.o schead.o sclog.o tstring.o cjson.o
$(RUN)
test_csv.out:test_csv.o schead.o sclog.o sccsv.o tstring.o
$(RUN)
test_json_read.out:test_json_read.o schead.o sclog.o sccsv.o tstring.o cjson.o
$(RUN)
test_log.out:test_log.o schead.o sclog.o
$(RUN)
test_scconf.out:test_scconf.o schead.o scconf.o tree.o tstring.o sclog.o
$(RUN)
test_tstring.out:test_tstring.o tstring.o sclog.o schead.o
$(RUN) #产品主要的待链接文件
test_cjson_write.o:./main/test_cjson_write.c
$(RUNO)
test_csjon.o:./main/test_csjon.c
$(RUNO)
test_csv.o:./main/test_csv.c
$(RUNO)
test_json_read.o:./main/test_json_read.c
$(RUNO)
test_log.o:./main/test_log.c
$(RUNO) -std=c99
test_scconf.o:./main/test_scconf.c
$(RUNO)
test_tstring.o:./main/test_tstring.c
$(RUNO) #工具集机械码,待别人链接
schead.o:./module/schead/schead.c
$(RUNO)
sclog.o:./module/schead/sclog.c
$(RUNO)
sccsv.o:./module/schead/sccsv.c
$(RUNO)
tstring.o:./module/struct/tstring.c
$(RUNO)
cjson.o:./module/schead/cjson.c
$(RUNO)
scconf.o:./module/schead/scconf.c
$(RUNO)
tree.o:./module/struct/tree.c
$(RUNO) #删除命令
clean:
rm -rf *.i *.s *.o *.out __* log ; ls -hl
.PHONY:clean
从上往下读,很基础,因为我的Makefile 学的很基础. 先编译什么,依赖什么. 这样把这个项目编译起来了. 大家试试. 发布的时候 去掉-D_DEBUG 就可以了.
想再说一点, 我们在window和linux上协同工作的时候,常遇到编码问题.
解决方案
window上编译器 IDE 采用英文环境 默认 utf-8
linux 采用 enca 很好用, 怎么安装, 自己google 一下.
到这里有点懒了,不想细说了. 就这样吧. 说的再多, 也说不清楚所有..............................
后记
错误是难免的,欢迎吐槽...
这个框架出来,是该写一写好玩的东西. 有机会分享几个建议的游戏开发. 以后有机会准备分享一些. 下一个阶段有机会再分享一些网络库和数据库开发的知识.
bye...
C 简易基础开发框架 - simple c的更多相关文章
- Dos简易基础及常用Dos命令
Dos简易基础及常用Dos命令 什么是cmd? cmd是command的缩写,意指操作系统中的命令行程序,一般说的都是Windows中的Dos系统. 如何打开cmd? 键盘操作:Win + R 输入c ...
- Solon 1.5.29 发布,轻量级 Java 基础开发框架
本次版本主要变化: 增加 captcha-solon-plugin 插件(提供滑块验证与选文字验证能力) 插件 sa-token-solon-plugin,升级 sa-token 为 1.26.0 插 ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.40 发布
Solon 已有120个生态扩展插件,此次版本以细节打磨为主: 增加 mybatisplus-solon-plugin 插件 //至此,Solon 已完成国内外主流的5个ORM框架插件适配 插件 so ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.52 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 插件 mybatis-solon-plugin 增加 mappers 单行配置支持 之前的多行模式: mybatis.db1: type ...
- Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架
Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...
- 简易的开发框架(微服务) Asp.Net Core 2.0
Asp.Net Core 2.0 + Mysql Orm + Ioc + Redis + AOP + RabbitMQ + Etcd + Autofac + Swagger 基础框架: https ...
- Xcode简易基础篇,以新手角度去操作
声明:此Newlife XCode非Mac的XCode,避免误会. 日常用的Newlife X组件的相关资源,不限于XCode,只是以XCode组件为主: 1.QQ群:1600800 2.博客 : h ...
- C基础 多用户分级日志库 sclog
引言 - sclog 总的设计思路 sclog在之前已经内置到simplec 简易c开发框架中一个日志库. 最近对其重新设计了一下. 减少了对外暴露的接口. 也是C开发中一个轮子. 比较简单, 非常适 ...
随机推荐
- Selenium2.0介绍
selenium是一个web的自动化测试工具,和其它的自动化工具相比来说其最主要的特色是跨平台.跨浏览器. 支持windows.linux.MAC,支持ie.ff.safari.opera.chrom ...
- 在shell中通过fifo与服务器交互
首先,需要说的是:1.在shell中,运行的每一个命令至少启动一个新进程,且:$$:获取当前shell的进程号(PID)$! :执行上一个指令的PID2.重定向与管道有点类似,例子:cmd1 < ...
- 学习练习 java 程序设计园的周长面积
编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果. 注:系统类Math位于java.lang包中,圆周率π可以由Math类的静态属性PI得到,其定义为“public static fin ...
- ASPxGridView中批量提交及个别提交的写法
//获取chech box ID protected string GetProtoID() { string protoId = ""; //获取选中的记录Id List< ...
- 初识Ruby
以下为看<七周七语言>的第一课,找到答案,参考资料来源于http://book.douban.com/annotation/27705657/ Ruby API文档在这里http://ru ...
- .NET Reflector反编译的方法
首先启动.NET Reflector,然后添加进入dll或exe.然后选择Export Source Code...,将反编译后的代码文件,生成到指定目录. 到这一步骤时,稍等一会,就能够在指定目录就 ...
- Wpf实现图片自动轮播自定义控件
近来,公司项目需要,需要写一个自定义控件,然后就有下面的控件产生.样式没有定义好,基本功能已经实现.1.创建为自定义控件的XAML页面.下面为后台代码 using System; using Syst ...
- puppet实现主从部署各种软件实战参考模型
puppet实现主从部署各种软件实战参考模型 实验要求: 1.我将准备三个节点 node2 , node3 , node4 2.我们想让节点node3部署ntp,nginx ;节点node ...
- ubuntu 字体 android stuido 汉字 显示 方块
Ubuntu 12.04 LTS 中安装 windows 字体 ubuntu 中的中文字体看着总觉的有点不爽,于是百度了下,这里记录下怎么在 ubuntu 12.04 中安装 windows 字体 ...
- 消息推送之GCM
利用GCM进行消息推送 原理 1.接收端向GCM注册registerid 2.发送端发消息给GCM服务器 这个过程需要三个参数: (1)API Key (2)registerid (3)传递的数据 3 ...