XcodeとC言語ソース
XcodeでC系ビルド忘備録
※2019/4/30 Xcode10系時点の記事です
なるべく最新の記事を参考にしてください。
Apple様は、コンパイラなどを独自のものに変えて、仕様が変わりやすいです!tdbとかな!
Xcode用のFramework作成作業とか記事あるけど古くて微妙!
必要なもの
CMake
クロスプラットフォームにCビルドファイルを作成してくれるすごいやつ
cmake.orgCMake用の「Toolchain」ファイル
CPU Platform設定などのコンパイラに食わせるMakeファイルを作るための設定ファイル(たぶん!)
Xcode向け(Xcode上(Simulator)と実機上)に出力が必要(arm7 / arm7s / arm64 /arm64e / i386 / x86_64).aファイルへのPackの仕方が微妙だが、新しめ XcodeProjectも出力できる!
GitHub - leetal/ios-cmake: A CMake toolchain file for iOS, watchOS and tvOS C/C++/Obj-C++ development.aファイルへのPackの仕方がよいが、古い
GitHub - cristeab/ios-cmake: A toolchain file and examples using cmake for iOS development (this is a fork of a similar project found on code.google.com)
対象のC++ソース
Xcodeでの取り込み
- makeしてaファイル&dylink(静的リンク)を作成(Simulator用と実機用で分けたほうが良いのか?お作法がよくわからん)
- XcodeのBuild Settingへ上記ファイルフォルダとHeaderフォルダ指定
- 上記2ファイルをFrameworkへ追加 & 大体はC++の Standerd Library使ってるから libc++.tdbを追加
そして知る驚愕の事実 dylink は古くて tdb で間接指定するらしい。。。めんどくさ - 大体これでビルドエラーはなくなるはず!(まあtdb作らんと arコマンドでoファイルに解凍しないといけないぽいし複数使ってるとライブラリがかぶったり。。。ほんとめんどくさい)
- この後も罠がいっぱい!swiftだとheader取り込む用のBridge Headerファイル作るとかFrameworkにするとか!
よいC++ライフを!