引言
一個為 簡單高效而生的 簡易跨平台的 純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...