cygwin编译报错:**.cpp:1:1: error: stray '\377' in program解决方法

编译报错内容:

[armeabi] Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp

jni/../../Classes/HelloWorldScene.cpp:1:1: error: stray '\377' in program
jni/../../Classes/HelloWorldScene.cpp:1:1: error: stray '\376' in program
jni/../../Classes/HelloWorldScene.cpp:1:1: error: stray '#' in program
jni/../../Classes/HelloWorldScene.cpp:1:4: warning: null character(s) ignored [enabled by default]

jni/../../Classes/HelloWorldScene.cpp:1:6: warning: null character(s) ignored [enabled by default]

……

jni/../../Classes/HelloWorldScene.cpp:49:2: error: expected unqualified-id before '/' token
/cygdrive/e/cocos2d/android-ndk-r9c-windows-x86/android-ndk-r9c/build/core/build-binary.mk:388: recipe for target 'obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/HelloWorldScene.o' failed
make: *** [obj/local/armeabi/objs/cocos2dcpp_shared/__/__/Classes/HelloWorldScene.o] Error 1
make: Leaving directory '/cygdrive/e/cocos2d/cocos2d-x-2.2.1/projects/GODS/proj.android'

在网上找了好几下,没能解决。

有的人说:可能是因为格式不是纯粹的TXT格式子,而我用的编辑器没能认出来。

也有的人说:这个错误一般是源代码中含有一些隐藏的非ascii字符,可能原因在编辑器中使用的utf-8的格式保存源代码中出现了中文的标点符号。

他们建议把东西copy到文本编辑器中,再copy回来试试

还有网友的建议是用UE(下载地址:http://lwr0312.blog.163.com/blog/static/48336807200931695730586/edit/)打开,用16进制编辑,删除掉最前面多余的字节。

我对着操作,搞得晕乎乎,呜呜……没有多余的字或者中文符号啊!并没有解决问题。

后来终于看到一个帖子,里面的“gcc”几个字,让我看到了希望!!!下面附上地址:

http://wenku.baidu.com/link?url=_NgJPYtTUJ-WwLFEk38GgS_e5YdjYlltuc9E4oc4wvGHeGgk7OopTKzX66Epfg6MEYR1M7npZBnNkkwxwG7oRkZpxPgCIoVF6pTNYOYJ7YS

文中提及到“这是因为你的编译器将文件编码存为了UTF-8格式的,可是winavr作为gcc的编译器是不认识这种格式的”,“将UTF-8改掉,改成US-ASIIC或者Chinese Simple(GB2312)都行,为什么Chinese Simple(GB2312)也行我也不知道,可能其他的也行只要不是UTF-8就行了”。

我这个原本是mac上的项目,移植到win的vs中时我把格式存为Unicode(当时错了!如果当时就改为了ANSI就不会有这些报错了!),现在从VS弄到安卓中(通过cygwin的gcc)要把格式另存为ANSI,然后就可以编译通过了。

搞定,收工!终于,可以安心睡觉觉了!晚安,good night!

你可能感兴趣的:(cocos2d-x(2.x))