XCodeでObjetive-CとC++を共有する
XCode上でプログラムを打っていて初めにぶち当たった壁でした。
XCodeでは基本的にObjective-Cの使用が推奨されているっぽいです。
ライブラリとか見てるとObjective-Cで書いてあるみたいですし・・・
でもC,C++が使えないかと言うとそんな事は無く普通に使用できます。
なので私は使い慣れたC,C++を使ってコードを書いていたんですが、
そこに落とし穴があった><
サンプルコード内に(.mなどで書かれたObjective-Cのソース)
自分で書いたC++系のソースをインクルードするとなぜか大量のエラーメッセージが・・・
なんか色々と調べていたら同じ問題になっている人も多いらしく
どうやらXCodeではファイルタイプによってコンパイル方法が変わっているっぽい。
なので複数のファイルタイプの物をコンパイルしようとするとおかしくなるようだ。
要は全部Objective-Cで書けば問題無いのだが、それだとクラス宣言周りとかC++から学んだ私にとっては全然違うのでかなり書きづらく感じる。
そこで解決方法としてはファイルのタイプを変更できるようだ。
XCode上の「グループとファイル」の一覧上にソースがたくさんあると思うけど、そこの自分で追加したソース(.cpp)などを右クリックすると「情報を見る」の項目があるはず!
これを選択するとファイルの情報が表示され、その中の「一般」タブ内に「ファイルタイプ」の項目がある。
これがcppでファイルを追加した場合に、デフォルトで「sourcecode.cpp.cpp」となっているようで
これを全て「sourcecode.cpp.objcpp」に変更するとエラーが全て解消された。
恐らく拡張子は違うが全てObjective-Cとしてコンパイルされているのか発生していたエラーが無くなりました。
ただ新しく追加する度に同じエラーが発生するので、その度に追加した
ファイルのファイルタイプを変更するのが少々めんどくさい。
これがどうにかならないもんかなぁ〜と考えています〜