xcode

XCode4下使用svn时出现Can’t read stdin: End of file found的解决方法

今天在XCode4下准备用SVN import项目时出现

Authentication realm: <svn://**********.net:3690> **********-**********
Password for 'svn': 
Authentication realm: <svn://**********.net:3690> **********-**********
Username: svn: Can't read stdin: End of file found
类似这样的错误弹板,项目是新的,SVN repo也是新的,且设置内的账号密码绝对没问题,折腾半天发现可能时cache的问题,解决方法也简单,进入命令好,用svn list命令访问一下repo的路径,就会提示重新输入账号密码,输对了就行了,回XCode再试就没问题了。个人认为这应该是由于XCode功能不完善导致!

XCode中cpp文件第一行出现Parse Issue: Expected unqualified-id错误的原因

移植Win32下的cpp文件到xcode中编译时发现,代码可以顺利通过编译,但在xcode中一查看cpp文件就会出现标题中的那个错误,虽然不影响编译运行程序,但是所有的h中的关键字都不能高亮且会导致一些关联的语法错误,起初以为是header search path的问题,但排查一通后发现问题原来是出在源文件的编码方式上!

xcode默认是使用UTF-8作为源代码文本文件的字符编码的,曾经为了统一这个,Win32下的cpp也改为了UTF-8,但是windows下的UTF-8文本文件头中会加入几个字节的编码标示,比如UTF-8是EF BB BF,UTF-16也有,是什么记不清了,是2个byte的。

导致xcode parse source时出错的就是这个字节标识,删掉就可以了。

deprecated conversion from string constant to char *

可能是xcode4用的gcc版本比较高的原因,在移植代码的时候出现了这样一个警告,正好提高了一下对const char*的认识。

void foo(char* szArg);

这样的函数这样 foo(“test”); 调用就会提示这个警告,以前可能没太注意过,因为传递的参数字符串是被作为常量处理的,而函数原型却要得不是const指针,也就是说函数内实现是允许修改指针内存的,所以编译器就爆了,理所应当的一个warning,改成const char*参数类型就可以了。