OpevCVのいくつかの関数を使用するEclipse CDTにC++プロジェクトがあり、実行可能ファイルにコンパイルされて正常に動作します。ここで、最初のプロジェクトで定義された関数のいくつかを使用する新しい C++ プロジェクトが必要です。2つをコンパイルしてリンクすることはできません。
新しいプロジェクトの関連ファイルに#include "..."
、古いプロジェクトを新しいプロジェクトの参照プロジェクトに追加し、新しいプロジェクトのビルド設定で、古いプロジェクトのソース フォルダーをインクルードとして追加しました。 ( -I
gcc オプション)。
役に立つ場合に備えて、Eclipse のスクリーンショットを添付しました。
コンパイラによって表示されるエラーは次のとおりです。
ビルド ターゲット: OtherProject 呼び出し
: GCC C++ リンカ
g++ -o "OtherProject" ./src/foo.o
./src/foo.o: 関数 `main' 内:
/home/max/opencvjni/OtherProject/Debug/../ src/foo.cpp:13: 未定義のしきい値への参照'
collect2: ld が 1 の終了ステータスを返しました
make: *** [OtherProject] エラー 1
スクリーンショットの他のタブにある他のファイルのコードは次のとおりです。
しきい値.cpp
#include <cv.h>
#include <highgui.h>
#include "Threshold.h"
using namespace cv;
int threshold(void) {
Mat img = imread("/home/max/opencvjni/monalisa.jpg", 0);
threshold(img, img, 127, 255, THRESH_BINARY);
imwrite("/home/max/opencvjni/monathresh.jpg", img);
return 0;
}
int main(void) {
threshold();
return 0;
}
しきい値.h
#ifndef THRESHOLD_H_
#define THRESHOLD_H_
int threshold(void);
#endif /* THRESHOLD_H_ */[/code]
- エクリプスのバージョン: 3.7.2
- CDT バージョン: 8.0.2.201202111925
- OS: Ubuntu 12.04
私の投稿をご覧いただきありがとうございます。これを行う方法がない場合、または別の方法で行う方が賢明な場合は、遠慮なくそう言ってください。
よろしく