小团队合作开发C语言程序,但是大家用的开发环境都不一样咋协调

约定好统一的编码格式 以及换行符格式就好了。

■网友
不用协调。这些都是编辑器(和“高级编辑器”),跟成品没有必然联系,大家各用各趁手的,你别插手不然引猿不快还降低他开发效率。你只需要统一最后生产环境下(以及最好统一开发环境下)的构建系统(比如说大家都用cmake)、编译器版本和依赖库版本。如果你使用类似docker的工具,这些都非常容易搞定。
另外,让那个用dev cpp的换个现代点的家伙(手动滑稽

■网友
统一开发环境(编辑器),确实很难,你们需要一个磨合期,举办一次直播编程大赛和结对编程是好办法。风险是,很可能因为统一编辑器,你的团队就散了,圣战不是说说而已。
■网友
约定好统一的规范,c/c++有需要特别注意的几个点:
【小团队合作开发C语言程序,但是大家用的开发环境都不一样咋协调】 1.行尾LF还是CRLF(可以使用.gitattributes强制约束)
find . -name \u0026#39;*.c\u0026#39; -type f -print0 | xargs -0 dos2unix
2.空格还是tab(clang-format会帮你整理的)
find . -name \u0026#39;*.c\u0026#39; -type f -exec bash -c \u0026#39;expand -t 4 "$0" \u0026gt; /tmp/e \u0026amp;\u0026amp; mv /tmp/e "$0"\u0026#39; {} \\;
3.源文件编码 (最好不写中文,统一ascii)
# 查看编码find . -name \u0026#39;*.c\u0026#39; -type f -print0 | xargs -0 file# 统一转换成GB180380find . -name \u0026#39;*.c\u0026#39; -type f -exec bash -c \u0026#39;iconv -t GB18030 "$0" \u0026gt; /tmp/e \u0026amp;\u0026amp; mv /tmp/e "$0"\u0026#39; {} \\;
4.源码风格
# 使用clang-format格式化find . -name "*.c" -type f -print0 | xargs -0 clang-format -i
上面是举了几个example,在实际应用中编写脚本,在commit之前,自动格式化

构建:
使用cmake,readme.md记录所有构建指令,需要注意哪些事项全都记下来

同步代码至开发机:
windows开发linux程序
使用rsync+inotifywait, ctrl+s保存源代码即可自动增量同步源码到开发机
thekid/inotify-win Add Rsync to “Git Bash for Windows”inotifywait -mrq . --exclude \u0026#39;.git\u0026#39; | while read file ; do rsync -avh . --filter=\u0026#39;:- .gitignore\u0026#39; --cvs-exclude --delete-excluded --force root@vm1:/root/reference/linux_socket_testdone
调试:
gdb --tui 或 cgdb

ide:
看代码windows推荐 understand + Search and Replace 看 ascii 或 gb2312的代码(utf8需要转gb2312)

写代码推荐visual code 将linux上的头文件rsync下来做code complete

■网友
都是标准c有啥问题 除非你们要用外部库, 那。。难道你们没提前确定下来最后的产品在哪个平台上用吗? 如果跨平台不应该早就用宏定义拆开各个平台外部库和API了么 最后管理项目来个cmake就行了 想生成啥生成啥
■网友
每个人想用什么用什么 为什么要协调
■网友
都是用标准C还怕什么编译环境。


    推荐阅读