情况如下:vs2010版本:10.0.30319.1 RTMRel,.cpp文件编码为utf-8,里面有中文,目的是在windows下编译,然后直接可以拿到Linux下编译。现在在vs2010中编译出错,如下:
>DevOperation\PipeControl.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>d:\work\w8-m342_interface_include_connectreader\connectsmartcard\connectsmartcard\devoperation\PipeControl.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>d:\work\w8-m342_interface_include_connectreader\connectsmartcard\connectsmartcard\devoperation\PipeInterface.h : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
1>d:\work\w8-m342_interface_include_connectreader\connectsmartcard\connectsmartcard\devoperation\PipeInterface.h(45): error C2059: 语法错误:“<class-head>”
1>d:\work\w8-m342_interface_include_connectreader\connectsmartcard\connectsmartcard\devoperation\PipeInterface.h(45): error C3805: “<class-head>”: 意外标记,应输入“}”或者“,”
1>D:\boost\boost_1_46_0\boost/smart_ptr/scoped_array.hpp(23): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>D:\boost\boost_1_46_0\boost/smart_ptr/scoped_array.hpp(23): error C2447: “{”: 缺少函数标题(是否是老式的形式表?)
1>D:\boost\boost_1_46_0\boost/smart_ptr/shared_array.hpp(51): error C2143: 语法错误 : 缺少“;”(在“<”的前面)
PipeInterface.h(45): 代码如下
该编码方式为utf-8不带签名,如果改成带签名的utf-8则编译没问题,但是放在linux系统下gcc又编译出错,各位大哥有没有什么好得解决方法?