0

私はクラスを作成し、ヘッダーにいくつかの外部メソッドを持っていますFunctions.h(それが問題だと思います)。とにかく、クラス実装ファイルで任意のタイプの C スタイル関数を使用しようとするときはいつでも。空白のものでも、コンパイラ/ liker エラーが発生します。私はこれが初めてで、問題が何であるかを理解していません。ファイルを使用できないと考えてい.hますが、クラス ファイルでグローバル変数とディレクティブを使用できます。

外部関数を宣言する場所はどこですか? どのようなファイルで?

4

2 に答える 2

3

私の推測では、ヘッダー ファイルで関数 (実装を含む) を完全に定義し、それを複数のソース ファイルからインクルードしていると思います。そして、あなたが説明するのを忘れたエラーは、「複数の定義」または「重複したシンボル」について何かを言います:

// Header file
void some_function() {
    // do some stuff
}

その場合は、定義をソース ファイルに移動し、ヘッダーに宣言だけを残して、定義が 1 つだけになるようにする必要があります

// Header file
void some_function();

// Source file
void some_function() {
    // do some stuff
}

またはinline、複数のソース ファイルに含めることができる定義を宣言します。

// Header file
inline void some_function() {
    // do some stuff
}

それが問題でない場合は、何が起こっているのかを推測する必要がないように、いくつかのサンプル コードとエラー メッセージを投稿してください。

于 2013-03-13T18:26:04.253 に答える
2

タグとして持っc++ています。おそらくこれらの関数は C++ 関数ですが、Obj-C ファイルから取得しようとしていますか? .mmその場合は、それらを C 関数に変換するか、Obj-C++ (の代わりに拡張子を持つ) を使用する必要があります.m

于 2013-03-13T18:19:15.437 に答える