2017-10-14 4 views
0

私はUbuntu 16.10 LTSでopenCV 3.3.0を使用してNetBeans 8.0でOpenCVプロジェクトをビルドするためにC++を使用しています。OpenCV 3.3.0ビルドで_ZN4half5_eLutEが定義されていません

コンパイルにはエラーと警告がありません。ただし、リンクステージでは、_ZN4half5_eLutEが未定義と見なされるため、コンパイルは失敗します。リンクプロセスと結果を以下に示します。

cd '/home/peter/NetBeansProjects/ApplyModelToSet' 

/usr/bin/make -f Makefile CONF=Debug 


"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 


make[1]: Entering directory '/home/peter/NetBeansProjects/ApplyModelToSet' 


"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux/applymodeltoset 


make[2]: Entering directory '/home/peter/NetBeansProjects/ApplyModelToSet' 


mkdir -p dist/Debug/GNU-Linux 


g++ -o dist/Debug/GNU-Linux/applymodeltoset applymodeltoset.o build/Debug 
/GNU-Linux/_ext/73c876dd/colour.o build/Debug/GNU-Linux/_ext/73c876dd 
/correlation.o build/Debug/GNU-Linux/_ext/73c876dd/fft.o build/Debug/GNU- 
Linux/_ext/73c876dd/wirth.o build/Debug/GNU-Linux/_ext/73c876dd/xmlReader.o 
build/Debug/GNU-Linux/main.o -L../../lib -L/usr/lib/x86_64-linux-gnu 
-L../../xerces-c-3.1.4/src/.libs -L../../Downloads/opencv-3.3.0/build/lib 
/usr/lib/x86_64-linux-gnu/libpng.a -lxerces-c -lopencv_calib3d 
-lopencv_calib3d_pch_dephelp -lopencv_core -lopencv_core_pch_dephelp 
-lopencv_dnn -lopencv_dnn_pch_dephelp -lopencv_features2d 
-lopencv_features2d_pch_dephelp -lopencv_flann -lopencv_flann_pch_dephelp 
-lopencv_highgui -lopencv_highgui_pch_dephelp -lopencv_imgcodecs 
-lopencv_imgcodecs_pch_dephelp -lopencv_imgproc 
-lopencv_imgproc_pch_dephelp -lopencv_ml -lopencv_ml_pch_dephelp 
-lopencv_objdetect -lopencv_objdetect_pch_dephelp 
-lopencv_perf_calib3d_pch_dephelp -lopencv_perf_core_pch_dephelp 
-lopencv_perf_dnn_pch_dephelp -lopencv_perf_features2d_pch_dephelp 
-lopencv_perf_imgcodecs_pch_dephelp -lopencv_perf_imgproc_pch_dephelp 
-lopencv_perf_objdetect_pch_dephelp -lopencv_perf_photo_pch_dephelp 
-lopencv_perf_stitching_pch_dephelp -lopencv_perf_superres_pch_dephelp 
-lopencv_perf_video_pch_dephelp -lopencv_perf_videoio_pch_dephelp 
-lopencv_photo -lopencv_photo_pch_dephelp -lopencv_shape 
-lopencv_shape_pch_dephelp -lopencv_stitching 
-lopencv_stitching_pch_dephelp -lopencv_superres 
-lopencv_superres_pch_dephelp -lopencv_test_calib3d_pch_dephelp 
-lopencv_test_core_pch_dephelp -lopencv_test_dnn_pch_dephelp 
-lopencv_test_features2d_pch_dephelp -lopencv_test_flann_pch_dephelp 
-lopencv_test_highgui_pch_dephelp -lopencv_test_imgcodecs_pch_dephelp 
-lopencv_test_imgproc_pch_dephelp -lopencv_test_ml_pch_dephelp 
-lopencv_test_objdetect_pch_dephelp -lopencv_test_photo_pch_dephelp 
-lopencv_test_shape_pch_dephelp -lopencv_test_stitching_pch_dephelp 
-lopencv_test_superres_pch_dephelp -lopencv_test_video_pch_dephelp 
-lopencv_test_videoio_pch_dephelp -lopencv_test_videostab_pch_dephelp 
-lopencv_ts -lopencv_ts_pch_dephelp -lopencv_video 
-lopencv_video_pch_dephelp -lopencv_videoio -lopencv_videoio_pch_dephelp 
-lopencv_videostab -lopencv_videostab_pch_dephelp -ljpeg -lz -lIlmImf 
-lopencv_flann -pthread -lopencv_flann 



/usr/bin/ld: ../../lib/libopencv_imgcodecs.a(grfmt_exr.cpp.o): undefined reference to symbol '_ZN4half5_eLutE' 


//usr/lib/x86_64-linux-gnu/libHalf.so.12: error adding symbols: DSO missing from command line 


collect2: error: ld returned 1 exit status 


nbproject/Makefile-Debug.mk:102: recipe for target 'dist/Debug/GNU- Linux/applymodeltoset' failed 


make[2]: *** [dist/Debug/GNU-Linux/applymodeltoset] Error 1 


make[2]: Leaving directory '/home/peter/NetBeansProjects/ApplyModelToSet' 


nbproject/Makefile-Debug.mk:97: recipe for target '.build-conf' failed 


make[1]: *** [.build-conf] Error 2 


make[1]: Leaving directory '/home/peter/NetBeansProjects/ApplyModelToSet' 


nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed 


make: *** [.build-impl] Error 2 

私はいくつかの類似文字列libopencv_flann.aで定義されているが、それが含まれているがあることを理解しています。

+1

'-lopencv_imgcodecs'の前に' -lopencv_flann'が表示されています。後者が前者に依存している場合、それは問題になる可能性があります。そして再び、前者は2回後に現れます。 – chris

+0

最後に-lopencv_flannを入れてみましたが、同じエラーが出ました。ありがとう、 – OtagoHarbour

+1

コマンドラインを使ってコンパイルできますか? 'g ++ * .cpp -o test 'pkg-config opencv --cflags --libs' -lpthread'?すべての '.so'ファイルが含まれていることを確認するだけです。 – zindarod

答えて

0

私はついにそれを理解しました。 _ZN4half5_eLutEはOpenCV 3.3の一部ではありません。/usr/lib/x86_64-linux-gnuにはOpenCVの以前のバージョンのライブラリが含まれています。私が../../Downloads/opencv-3.3.0/build/libに最初の検索ディレクトリを作成したとき、_ZN4half5_eLutEはもはや必要ではなかったため、問題はなくなりました。

関連する問題