安卓Studio编译C++疑难错误
近期要把一套C++代码从VS环境下移植到安卓Studio下编译,在移植过程中遇到了一些经典疑难错误,这里分享给大家!
Error:(371, 8) error: no matching constructor for initialization of 'myClass'
拷贝构造函数里没const造成。
在VS里myClass(myClass&a)这样的形式编译没问题,但是在安卓Studio下不行,要加上const,改为myClass(const myClass&a)。
Error:(1016, 15) error: cannot jump from this goto statement to its label
把goto语句和label前的变量定义到函数开始位置。
比如:
goto abc;
int a;
abc:a=10;
这里的a就会导致如题的编译错误,解决办法是把int a向上提,放到函数{的直接后续行里,就没事。
总结
VS推出的早要向下兼容,在语法形式上判断的不严格,有些写的少的代码也能编译过,但是安卓Studio推出的晚,更符号标准,要求也更严格。遇到错误不要急,根据标准和规定语法形式来查。