1

C++ ライブラリを XCode にインポートしようとしました。名前を .cpp から .mm に変更しましたが、コンパイルしようとすると、次のようなエラーが表示されます。

DateOps.h:23: エラー: 'DateOps' の前に'='、','、';'、'asm' または '_ attribute _' が必要です

DateOps.h ファイルの先頭

#if !defined( DATE_OPS__H )
#define DATE_OPS__H

typedef int MonthDays[13];

typedef long YearEndDays[2];

class DateOps {
public:
  enum CalendarType {
    T_GREGORIAN = 0,
    T_JULIAN = 1,
  };

...

4

2 に答える 2

1

いくつかのファイルを Objective-C++ としてコンパイルするだけでよい場合は、WrightsCS が提供した答えがうまく機能します。ただし、この方法でコンパイルするファイルが多数ある場合、またはプロジェクトが将来大きくなると思われる場合は、すべてのファイルのコンパイル言語を変更できます。

ターゲットのBuild Settingsに移動し、 Languageセクションの下でCompile Sources Asという設定を探します。通常は「ファイル タイプに応じて」に設定されます (これは .mm 拡張子で動作するはずですが、以前はまだ Objective-C としてコンパイルされるというバグを見てきました)。この設定を変更することで、強制的に「Objective-C++」にすることができます。

于 2012-05-15T15:05:47.773 に答える
0

参照している .mm ファイルにコンパイラ フラグ-x objective-c++として設定する必要があります。

ここに画像の説明を入力

于 2012-05-15T14:57:01.900 に答える