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文件的换行符是\r\n两个字符。因此,如果我们将一个多行文件,从linux操作系统中传输到windows操作系统时,经常多行文件会变成一行,如下图:

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

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

修改过后为:

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

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值