1

NetBeans 7.0.1 を使用して、Ubuntu 11.10 で OpenCV 2.4.0 を使用して C++ アプリケーションを開発しています。アプリケーションをビルドしようとすると、次のリンク エラー メッセージが表示されます。

undefined reference to `cvCreateSubdivDelaunay2D(CvRect, CvMemStorage*)'
undefined reference to `cvSubdivDelaunay2DInsert(CvSubdiv2D*, cv::Point_<int>)'

以下のライブラリにリンクしています。

libopencv_calib3d_pch_dephelp.a
libopencv_calib3d.so
libopencv_calib3d.so.2.4
libopencv_calib3d.so.2.4.0
libopencv_contrib_pch_dephelp.a
libopencv_contrib.so
libopencv_contrib.so.2.4
libopencv_contrib.so.2.4.0
libopencv_core_pch_dephelp.a
libopencv_core.so
libopencv_core.so.2.4
libopencv_core.so.2.4.0
libopencv_features2d_pch_dephelp.a
libopencv_features2d.so
libopencv_features2d.so.2.4
libopencv_features2d.so.2.4.0
libopencv_flann_pch_dephelp.a
libopencv_flann.so
libopencv_flann.so.2.4
libopencv_flann.so.2.4.0
libopencv_gpu_pch_dephelp.a
libopencv_gpu.so
libopencv_gpu.so.2.4
libopencv_gpu.so.2.4.0
libopencv_haartraining_engine.a
libopencv_highgui_pch_dephelp.a
libopencv_highgui.so
libopencv_highgui.so.2.4
libopencv_highgui.so.2.4.0
libopencv_imgproc_pch_dephelp.a
libopencv_imgproc.so
libopencv_imgproc.so.2.4
libopencv_imgproc.so.2.4.0
libopencv_legacy_pch_dephelp.a
libopencv_legacy.so
libopencv_legacy.so.2.4
libopencv_legacy.so.2.4.0
libopencv_ml_pch_dephelp.a
libopencv_ml.so
libopencv_ml.so.2.4
libopencv_ml.so.2.4.0
libopencv_nonfree_pch_dephelp.a
libopencv_nonfree.so
libopencv_nonfree.so.2.4
libopencv_nonfree.so.2.4.0
libopencv_objdetect_pch_dephelp.a
libopencv_objdetect.so
libopencv_objdetect.so.2.4
libopencv_objdetect.so.2.4.0
libopencv_perf_calib3d_pch_dephelp.a
libopencv_perf_core_pch_dephelp.a
libopencv_perf_features2d_pch_dephelp.a
libopencv_perf_gpu_pch_dephelp.a
libopencv_perf_highgui_pch_dephelp.a
libopencv_perf_imgproc_pch_dephelp.a
libopencv_perf_nonfree_pch_dephelp.a
libopencv_perf_objdetect_pch_dephelp.a
libopencv_perf_photo_pch_dephelp.a
libopencv_perf_stitching_pch_dephelp.a
libopencv_perf_video_pch_dephelp.a
libopencv_photo_pch_dephelp.a
libopencv_photo.so
libopencv_photo.so.2.4
libopencv_photo.so.2.4.0
libopencv_stitching_pch_dephelp.a
libopencv_stitching.so
libopencv_stitching.so.2.4
libopencv_stitching.so.2.4.0
libopencv_test_calib3d_pch_dephelp.a
libopencv_test_contrib_pch_dephelp.a
libopencv_test_core_pch_dephelp.a
libopencv_test_features2d_pch_dephelp.a
libopencv_test_highgui_pch_dephelp.a
libopencv_test_imgproc_pch_dephelp.a
libopencv_test_legacy_pch_dephelp.a
libopencv_test_ml_pch_dephelp.a
libopencv_test_nonfree_pch_dephelp.a
libopencv_test_objdetect_pch_dephelp.a
libopencv_test_photo_pch_dephelp.a
libopencv_test_stitching_pch_dephelp.a
libopencv_test_video_pch_dephelp.a
libopencv_ts_pch_dephelp.a
libopencv_ts.so
libopencv_ts.so.2.4
libopencv_ts.so.2.4.0
libopencv_video_pch_dephelp.a
libopencv_video.so
libopencv_video.so.2.4
libopencv_video.so.2.4.0
libopencv_videostab_pch_dephelp.a
libopencv_videostab.so
libopencv_videostab.so.2.4
libopencv_videostab.so.2.4.0
libraries.txt

誰かがこのエラーを解決する方法を教えてくれることに最も感謝しています。

事前に感謝します、ピーター。

4

1 に答える 1

0

2.4.0 ではcvSubdivDelaunay2DInsertlibopencv_legacy.soあり、ソース コードによるとそうあるべきcvCreateSubdivDelaunay2Dですが、Mac OS X でコンパイルされたライブラリには最新のものは見つかりませんでした。

この情報を確認するには、OpenCV ライブラリ ディレクトリに移動して を実行しnmます。シンボル名の前に文字 T が付いた結果が表示される場合、それはシンボルを実装するライブラリであることを意味します。

$ nm libopencv_legacy.so | grep cvSubdivDelaunay2DInsert    
00000000000b5200 T _cvSubdivDelaunay2DInsert

cvCreateSubdivDelaunay2Dこのトリックを使用しても見つからない場合は、バグを報告することを検討してください。

于 2012-05-14T01:06:43.040 に答える