Unix で問題なくコンパイルできる古い C プロジェクトがあります。Xcode on Lion でビルドしたいので、新しい Xcode プロジェクトを作成し、すべてのファイル (makefile を除く) を追加しました。
いずれにせよ、ビルド中に多くの「セマンティックの問題」に遭遇しています。ここで何が起こっているのか知っている人はいますか?ポインターに関するこれらの問題はすべて奇妙に思えます。Xcode でプロジェクトをビルドするのは、make を使用するのと本当に違うのでしょうか? これはosxと関係がありますか?
例えば:
unsigned char *p = b->buf + adbuf_used(b);
エラーが発生します:
タイプ 'char *' の式で 'unsigned char *' を初期化すると、ポインターが符号の異なる整数型に変換されます
と
printf("sizeof(unsigned int) = %d\n", sizeof(unsigned int));
エラーが発生します:
変換では型「int」が指定されていますが、引数の型は「unsigned」です
と
printf("%2d, ", p-cset);
エラーが発生します:
変換では型「int」が指定されていますが、引数の型は「long」です
と
if (getsockname(sock_rt, (struct sockaddr *)&iface_out, &len) == -1 ) {
エラーが発生します:
型 'socklen_t *' (別名 'unsigned int *') のパラメーターに 'int *' を渡すと、ポインターが符号の異なる整数型に変換されます