次の OpenCV プログラムを CodeBlocks または Linux ターミナルでコンパイルしたいと考えています。
http://plaza.ufl.edu/tyler727/imdl/src/eigenface.cpp
line 57: nTrainFaces = loadFaceImgArray("/home/hacker/data/Eigenfacecpp/train.txt");
line 192: // load test images and ground truth for person number
nTestFaces = loadFaceImgArray("/home/hacker/data/Eigenfacecpp/test.txt");
// project the training images onto the PCA subspace
projectedTrainFaceMat = cvCreateMat(nTrainFaces, nEigens, CV_32FC1);
for(i=0; i<nTrainFaces; i++)
{
cvEigenDecomposite(faceImgArr[i],
nEigens,
eigenVectArr,
0, 0,
pAvgTrainImg,
line 78: projectedTrainFaceMat->data.fl + i*nEigens);
}
cvCalcEigenObjects(nTrainFaces,
(void*)faceImgArr,
(void*)eigenVectArr,
CV_EIGOBJ_NO_CALLBACK,
0,
0,
&calcLimit,
pAvgTrainImg,
line 154: eigenValMat->data.fl);
//project the test image onto the PCA subspace
cvEigenDecomposite(faceImgArr[i],
nEigens,
eigenVectArr,
0, 0,
pAvgTrainImg,
line 211: projectedTestFace);
そして、私はそれらのエラーを得ました:
Compiling: eigenface.cpp
In Function »void learn()«:
line 57: deprecated conversion from string constant to ‘char*’ [Wwrite-strings]
In Function »double recognize()«:
line 192: deprecated conversion from string constant to ‘char*’ [Wwrite-strings]
/usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
obj/Debug/eigenface.o: In function `learn()':
/home/hacker/data/Eigenfacecpp/eigenface.cpp:78: undefined reference to `cvEigenDecomposite'
obj/Debug/eigenface.o: In function `doPCA()':
/home/hacker/data/Eigenfacecpp/eigenface.cpp:154: undefined reference to `cvCalcEigenObjects'
obj/Debug/eigenface.o: In function `recognize()':
/home/hacker/data/Eigenfacecpp/eigenface.cpp:211: undefined reference to `cvEigenDecomposite'
私は何が間違っていたのか理解できません。ばかげていると思いますが、見つかりません。
CodeBlocks からのコンパイラとデバッガの設定:
リンカー設定 -> その他のオプション: -lopencv_core -lopencv_objdetect -lopencv_imgproc
-lopencv_highgui
検索ディレクトリ -> コンパイラ:/usr/local/include/opencv
検索ディレクトリ -> リンカ:/usr/lib
ここで私は何を間違えましたか?この問題で私を助けてください。