2011-05-21 13 views
5

Bazı eğitici eğitimleri yapmak için bu eğiticiyi (http://note.sonots.com/SciSoftware/haartraining.html) takip ediyorum. Şu anda eğitim örneklerini, özellikle .vec dosyalarının birleştirilmesini oluşturmaya takılıyorum. Bu (http://note.sonots.com/SciSoftware/haartraining/mergevec.cpp.html) dosyasına ve Linux için nasıl oluşturulacağına dair bir açıklama sağladım (Ubuntu 11.04). İşte benim problemim, mergevec kodunu oluşturamıyorum. Tek hata "ölümcül hata: cvhaartraining.h: Böyle bir dosya veya dizin yok." Cvhaartraining.h'nin mergevec ile aynı dizinde olduğundan emin olmak için kontrol ettim ama her şeyi beklediğim yerde buldum. Bu noktada, bunun nasıl çözüleceğine dair bir kayıp yaşıyorum, bu nedenle herhangi bir yardım büyük ölçüde takdir edilecektir.Hageraining öğreticisinden mergevec.cpp dosyası derlenemiyor

+1

Derleme bayraklarınıza '-I.' eklemeyi deneyin. –

+0

Sen bir hayat kurtarıcısın –

+1

Aynı problem burada, ben tam olarak nereye eklemek istiyorum '-I'? özgün oluşturma komutu: 'g ++ \' pkg-config --cflags opencv \ '\' pkg-config - derlemeler opencv \ '-o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp –

cevap

4

Mergevec oluşturmak için en kolay yolun CMake yapılandırma dosyalarını düzenlemek olduğunu buldum. OpenCV 2.3.1'de, haartraining dizini modules/haartraining dizinindeyken, 2.4.5 sürümünde apps/haartraining.'dur. Her iki şekilde de düzenlemek istediğiniz dosyaya CMakeLists.txt adı verilir. aşağıdaki gibi

yapılacak en kolay şey, mergevec için özel bir bölüm eklemektir:

# ----------------------------------------------------------- 
# mergevec 
# ----------------------------------------------------------- 
add_executable(opencv_mergevec mergevec.cpp) 
set_target_properties(opencv_mergevec PROPERTIES 
         DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" 
         OUTPUT_NAME "opencv_mergevec") 

Yükleme bölümünden önce bu hakkı ekleyebilir. Sonra mergevec.cpp'u haartraining dizinine yerleştirin, OpenCV'yi normal bir şekilde oluşturun ve mergevec.cpp çalıştırılabilir bir opencv_mergevec ikili dosyanız olacaktır.

Ubuntu bu mücadele Diğerleri için
+0

Bu, Windows'ta da çalışıyor – fiat

1

, bu gibi çağırma sonuna bayraklarını taşımak:

g++ `pkg-config --libs --cflags opencv` -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp haartraining.cpp -lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect 

Good Luck :

g++ -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp `pkg-config --libs --cflags opencv` 
1

senin sorunun aşağıdakileri yazın düzeltmek için İbrahim

İlgili konular