码迷,mamicode.com
首页 > 其他好文 > 详细

关于跨平台下end-of-line问题

时间:2014-08-17 18:22:02      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:style   使用   os   问题   代码   linux   line   window   

因为项目需要,同时开发了Linux/Windows版本的程序,后面在实际测试过程中,发现两个版本之间的体现出来的行为有些不一致,大致情况如下:

1、Linux下代码能编译通过,Windows下编译通过

2、Linux下程序功能正常,Linux程序功能不正确

#配置库使用svn,两个系统使用同一份代码

 

后面经过逐步定位,发现问题出现在中文注释上,再进一步发现时跨平台下end-of-line解释不同造成

实际上,在不同系统下,行尾符的解释不同:

如:Unix每行结尾为’\n‘,Windows系统每行结尾是“\r\n”, Mac系统每行结尾是‘\r‘

 

由上可知,Linux下的eol在Windows下会解释为回车+换行,而在Linux下只会是换行

为了解决此问题,svn 专门提供了一个 svn:eol-style 这个 property。只要将 svn:eol-style 设置为 native,每次 checkout,svn 会自动将 eol 转换为当前系统的默认格式

具体命令为:svn propset svn:eol-style native file/dir [-R 递归]

 

另外Linux下也提供了两个命令来解决这个问题:dos2unix + unix2dos,使用都很简单,具体可参考man描述

 

关于跨平台下end-of-line问题,布布扣,bubuko.com

关于跨平台下end-of-line问题

标签:style   使用   os   问题   代码   linux   line   window   

原文地址:http://www.cnblogs.com/srwang/p/3917988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!