0

私はC++ファイルを持っています:C.cppとCh

//C.h
#ifndef __ThreeMoreOpenCV__SourceC__
#define __ThreeMoreOpenCV__SourceC__

#include <iostream>

class C
{
public:
    static void Cmethod ();
};
#endif

//C.cpp
#include "SourceC.h"

using namespace std;

void Cmethod()
{
    printf("ff");

}

また、私はWrapper.h/.mmを持っています

//Wrapper.h
#import <Foundation/Foundation.h>

@interface CVWrapper : NSObject
+(void)returnCmethod;
@end

//Wrapper.mm
#import "Wrapper.h"
#import "C.h"

@implementation CVWrapper

+(void)returnCmethod
{
    C::Cmethod();
}

@end

わかりませんが、次のようなエラーが発生します。

"C :: Cmethod()"、参照元:+ [Wrapper returnCmethod] in Wrapper.o ld:アーキテクチャi386のシンボルが見つかりませんclang:エラー:リンカーコマンドが終了コード1で失敗しました(呼び出しを確認するには-vを使用してください) )。

関数を呼び出す正しい方法を教えてもらえますか?

4

1 に答える 1

4

CクラスにCmethod関数を実際に実装していません。C::次のように、関数ヘッダーでそれを実装する必要があります。

void C::Cmethod()
{
    printf("ff");
}
于 2013-03-24T19:57:45.970 に答える