Visual Studio和Linux下的gcc之间的C ++兼容性

我正在尝试在Linux下使用QtCreator编写一个用VS 2008编写的项目,并且我遇到了大量的错误:

/home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray '\377' in program /home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray '\376' in program /home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: error: stray '#' in program /home/ga/dev/CppGroup/MonteCarlo/main.cpp:1: warning: null character(s) ignored 

等等

这是否意味着编译器无法正确处理unicode? 我该如何解决?

这看起来像是UTF-16的小端UTF-16的UTF-16 BOM 。 您需要确保文件保存为UTF-8或通过iconv -f UTF-16LE -t UTF8 myfile手动转换。

确保文件以UTF-8编码。 用文本编辑器打开它,让你选择文件编码(例如gedit或notepad ++)并转换它。 我以前有类似的问题,但UTF-8文件工作正常(其他编码如UTF-16将无法正常工作)。

编辑:不要将您的资源脚本(如果有的话)转换为UTF-8。 资源编译器将无法读取它(至少在使用MSVC 2008时)。

这可能是你的文件使用Windows编码,字符如^ M,\ r \ n …你有没有试图在编译前在你的源文件上运行dos2unix?

我想我已经看到“流浪…”与Unicode的文件。

您可以配置编辑器或控制台(或两者)的编码设置来修复它。