オンラインで問題の解決策を見つけようとしましたが、うまくいきませんでした。私の問題はリンクに関連している可能性があると思います。
3 つのファイルscanner.h
がscanner.cpp
あり、scanner_test.h
できる限りファイルをトリミングしました。
スキャナー.h
class Scanner {
public:
Token *scan (const char *);
};
スキャナー.cpp
#include "scanner.h"
Token scan(const char *text){
// Do something code
}
scanner_test.h
#include "scanner.h"
Scanner *s ;
void test_setup_code ( ) {
s = new Scanner() ;
}
Token *tks = s->scan ( text ) ; //This line gives the error
コンパイルして実行しようとしたときのエラーは、scanner_test.h からのものです。undefined reference to `Scanner::scan(char const*)
これは私のコードの理解です。
コンパイル中にリンクされるファイルがscanner_test.h
含まれており、このファイルには次の定義がありますscanner.h
scanner.cpp
Scanner::scan(char const*)