15

既存の C++ コードベースを XCode iOS プロジェクトに「インポート」しようとしています。

問題は、xCode が私のコードをコンパイルしない (したがってリンクしない) ことです。これは私がこれまでに行ったことです:

  • [ファイル] > [プロジェクト] にファイルを追加します。複数のプラットフォーム用の共有コードベースであり、ソース コードの複数のコピーはオプションではないため、[ファイルのコピー] にはチェックを入れません。
  • 「ヘッダー検索パス」プロジェクト設定に適切なパスを追加しました。ヘッダー ファイルのインクルードは機能します。Objective-C++ (.mm) ファイルから #include "stuff.h" を含めることができます。

しかし、実際に XCode に .cpp ファイルをコンパイルするように指示する方法が見つかりませんか?

いくつかのポイント:

  • 私はそれをライブラリにプリコンパイルしてそのようにリンクする方法を探していません
  • このプロジェクトは、標準の iOS Objective-C プロジェクトです。そこから C++ コードが呼び出されます (これは問題ではありません)。

アップデート

コードベースディレクトリをターゲットの「コンパイル ソース」に追加しました。コードベースへのディレクトリ参照を選択できないため、実際には、ポップアップするダイアログで [Add other...] をクリックする必要があります。

追加すると、XCode から「外部ビルド システム プロジェクトを作成する」かどうか尋ねられます。チェックを入れたままにし、2 つのフィールドにデフォルト値「/usr/bin/make」と「$(ACTION)」を設定します。ただし、私のコードベースはビルド中にコンパイルされません。独自の Makefile を作成する必要がありますか?

「Create external build system project」を選択しないと、ターゲットの下にディレクトリ参照が作成されますが、ビルド中にコンパイルされず、警告が表示されます。

warning: no rule to process file '$(PROJECT_DIR)/../codebase'
of type folder for architecture i386
4

2 に答える 2

21

Copy Filesをチェックしない場合でも、プロジェクトにファイルを追加するときにAdd to Targetsをチェックする必要があります。

ここに画像の説明を入力

それを忘れた場合は、ターゲットを選択してBuild Phasesタブに移動し、ファイルをCompile Sourcesに追加できます。

ここに画像の説明を入力

于 2012-04-12T17:31:40.813 に答える
9

Targets -> Build Phases -> Compile Sources -> "+" -> "Add Others" -> (外部ソース フォルダーを選択) -> 選択: 追加されたフォルダーのグループを作成 -> オフ: アイテムのコピー目的地に。

これで、フォルダーが XCode になり、構造を模倣します。XCode でそのフォルダーにソース ファイルを追加すると、ソース ファイルは外部ソース ディレクトリに追加されます。そのため、複数の IDE を使用したり、ソース リンケージを管理したりしなければならないという問題が解決されます。

キャッチ。"Compile Sources" 領域に手動でファイルを追加する必要があります。これはかなり単純です。ソース ファイルをクリックして、XCode のグループ ディレクトリから [ソースのコンパイル] ウィンドウにドラッグするだけです。そのため、ここでソース ファイルを追加する場合は、追加の手順があります。それらを [ソースのコンパイル] ウィンドウに追加するのを忘れると、未解決のシンボル コンパイル エラーが発生します。

于 2012-05-23T20:50:22.550 に答える