私が以下に書いた単純な C++ コードは
、「'featureExtract()' への未定義の参照」というコンパイル エラーが発生しました ( Windows でコードブロックを使用)。
のFeaureExtract.h
#ifndef FEATUREEXTRACT_H_INCLUDED
#define FEATUREEXTRACT_H_INCLUDED
extern void featureExtract();
#endif // FEATUREEXTRACT_H_INCLUDED
のFeatureExtract.cpp
#include "FeatureExtract.h"
void featureExtract()
{
some code
}
のmain.cpp
#include "FeatureExtract.h"
int main()
{
featureExtract();
}
キーワード「C++ undefined reference to」を使用してSOを検索し、数十のエントリを読みました(多くはクラスまたはLinuxの下にあります)が、自分の問題に対処できませんでした(理由はわかりません)。
ヒントをありがとう〜
この問題を解決する前に、FeatureExtract.h にすべてのスタッフを配置するしかありません。動作しますが、良くないようです。この投稿 ( Why have header files and .cpp files in C++? ) では、.h ファイルの主な利点は「実装からインターフェイスを分離する」ことであると説明されていますが、すべてのインターフェイスと実装を .h ファイルに入れると他の効果があるのでしょうか?
ありがとう〜