Xcodeで修正したソースコードをVisualStudioに持ってきたら「定義されていない識別子です」と言われた

題名の通りなのですが、しょぼい問題に気が付かなかったので書いておきます。

現象としては、ビルドが通らなくなりました。
エラーは C2065 の「定義されていない識別子です」が大量に出力されました。
問題の定義されていない部分は、include している別のファイルで宣言してる define だったり、同じファイル内で宣言している構造体の要素だったりしました。
ないわけないだろ、と。

エラーが発生するまでに行ったのは、もともと Windows と Mac でソースコードを共有していたプロジェクトに対して、Xcode で修正を行って、そのあと Windows で動作確認をしようとしただけです。

結論としては、一部のソースコードから “BOM" が消えていたことが原因でした。
“BOM" がなくなるとこんなエラーになるんですね。
今後は意味がわからないエラーが出たときには、確認するようにします。

それぞれの IDE は、Mac は Xcode 6.3、Windows は Visual Studio 2015 でした。
IDE 関係ないから書いても意味ないかもしれないけどね。

余談ですが、調べているときに、SJIS のソースコードを含んでいると Visual Studio 2015 だとエラーが出るよ、という話が見つかりました。
確認したら SJIS のファイルが混じっていたので、これだー!と思って対応策を入れたあとの、これじゃねー!が悲しかったです。
# そもそも、SJIS が混じっている場合に出るエラーは C2065 ではなかったです。
そもそも、Visual Studio は SJIS がデフォルトだったのに混じってるとビルドが通らなくなるとかどういうことだよ、と思ったのは別のお話。

おしまい。

スポンサーリンク