5

Objective-C++の奇妙な動作を経験しました。私はObjective-C++クラスを持っており、メソッド本体で従来のC関数を呼び出します。しかし、リンカはC関数を見つけることができません。

ここで問題を説明しました: Objective-Cメソッド本体で使用されたC関数のXcode印刷シンボルが見つかりません

Objective-C ++クラスをObjective-Cクラスに変更することで問題を解決しましたが、問題はまだ残っています。Objective-C ++クラスでC関数を呼び出すことは禁止されていますか?

4

1 に答える 1

10

C関数が宣言されていることを確認する必要があります

extern "C"

適切な.hファイルにあります。

これを行う一般的な方法は次のとおりです。

//
// foo.h
//

#ifndef __FOO_H__
#define __FOO_H__

#ifdef __cplusplus
extern "C" {
#endif

// ... your interface here - normal C function declarations etc ...

#ifdef __cplusplus
}
#endif

#endif
于 2010-02-06T16:08:16.713 に答える