栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

linux上的c或c++等文件拷贝到windows编译时各种出错

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux上的c或c++等文件拷贝到windows编译时各种出错

一:文件编码格式

        linux使用的是UTF-8的格式;windows会用的是GBK的格式,需要将UTF-8转到GBK(但是此时可能会出现中文乱码),转码成GBK后编译就不会出现报错了。

当然,不想转码的话可以在VS2019上直接新建文件,将linux上的文件内容直接复制粘贴到新建的文件上也可以,这样的话换行符还有编码那些都是windows下的,可以减少更多不必要的麻烦。若采用windows的vs下新建文件,复制linux文件内容到新建文件上的方式的话那下一部分:换行符导致编译出错的内容也可以略过不看。

二:换行符导致出错

        开发人员经常会遇到多平台的开发,比如最常见的是在linux与windows之间的开发。常常为了便利,我们会之间将linux的文件拷贝到windows上的工程上来编译,但是这会出现错误:

明明已经定义了的变量,编译时却提示: C2065“xxxx”: 未声明的标识符

这主要是因为linux与windows下文件的换行符不一样导致的。linux文件的换行符是n字符,而windows文件的换行符是rn两个字符。因此,如果我们将一个多行文件,从linux操作系统中传输到windows操作系统时,经常多行文件会变成一行,如下图:

这就是结束符n导致的,可以用如notepad++这类的软件打开,“视图->显示符号->显示所有符号”,然后可以看到所有的回车换行都是linux的LF:

 因此我们需要将linux下的LF转为windows的CRLF类型,可以使用其他dos2unix等工具,当然,也可以使用notepad++进行转换:“编辑->档案格式转换->转换为windows格式”:

修改过后为:

这种CRLF文件结束符才是windows的。 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027117.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号