プログラムとバージョンでのOpenCV 3.1の共有ビルドを作成中:: redirectError:GCC 6.1.0を使用してWindows 10、MINGW32、cmakeの3.6.1(コード::ブロック16.01)未定義参照Mingwを
まず、静的ビルドの構築は完全に機能しますが、共有ビルドを構築するだけでは機能しません。具体的な問題の回避策は見つけられません。
上記のプログラムを共有ビルドとしてOpenCV3.1をビルドしようとしました。 BUILD_TBB =オフ、BUILD_WITH_DYNAMIC_IPP =オフ、BUILD_opencv_world =オフ、ENALBE_OMIT_FRAME_POINTER =上、ENABLE_SSE/SSE2/SSE3 =:私の場合の手段(とりわけ)で
[ 34%] Linking CXX executable ..\..\bin\opencv_test_core.exe
../../lib/libopencv_ts310.a(ts.cpp.obj):ts.cpp:(.text$_ZN6cvtest2TS4initERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x119): undefined reference to `cv::redirectError(int (*)(int, char const*, char const*, char const*, int, void*), void*, void**)'
collect2.exe: error: ld returned 1 exit status
modules\core\CMakeFiles\opencv_test_core.dir\build.make:885: recipe for target 'bin/opencv_test_core.exe' failed
mingw32-make[2]: *** [bin/opencv_test_core.exe] Error 1
CMakeFiles\Makefile2:1713: recipe for target 'modules/core/CMakeFiles/opencv_test_core.dir/all' failed
mingw32-make[1]: *** [modules/core/CMakeFiles/opencv_test_core.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2
デフォルト設定:cmakeののデフォルト設定を使用して、私は次のエラーを取得しますon、WITH_IPP、WITH_IPP_A = off(これは、いくつかのケースで共通の問題を引き起こすように思われます)。
問題は次のとおりです。そのエラーの意味とその修正方法を教えてください。
明らかに、一部の機能がありません:undefined reference to `cv::redirectError(int (*)(int, char const*, char const*, char const*, int, void*), void*, void**)
。ソースコードを検索すること
system.cpp
に、この機能のいくつかの定義を与える:ライン662:redirectError(CvErrorCallback errCallback, void* userdata, void** prevUserdata)
utility.hpp
:ライン174:CV_EXPORTS ErrorCallback redirectError(ErrorCallback errCallback, void* userdata=0, void** prevUserdata=0);
しかし、未定義の参照は、いくつかのパラメータとしてchar型のポインタをint型望んでいますしかし、私はどのようなソースファイルでもそのような機能を見つけることはできません。私がやりなさい
[ 95%] Linking CXX shared library ..\..\bin\libopencv_calib3d310.dll
CMakeFiles\opencv_calib3d.dir/objects.a(calibinit.cpp.obj):calibinit.cpp:(.text$_ZN2cv15findCirclesGridERKNS_11_InputArrayENS_5Size_IiEERKNS_12_OutputArrayEiRKNS_3PtrINS_9Feature2DEEE+0x426): undefined reference to `cv::redirectError(int (*)(int, char const*, char const*, char const*, int, void*), void*, void**)'
CMakeFiles\opencv_calib3d.dir/objects.a(calibinit.cpp.obj):calibinit.cpp:(.text$_ZN2cv15findCirclesGridERKNS_11_InputArrayENS_5Size_IiEERKNS_12_OutputArrayEiRKNS_3PtrINS_9Feature2DEEE+0x44d): undefined reference to `cv::redirectError(int (*)(int, char const*, char const*, char const*, int, void*), void*, void**)'
collect2.exe: error: ld returned 1 exit status
modules\calib3d\CMakeFiles\opencv_calib3d.dir\build.make:787: recipe for target 'bin/libopencv_calib3d310.dll' failed
mingw32-make[2]: *** [bin/libopencv_calib3d310.dll] Error 1
CMakeFiles\Makefile2:3634: recipe for target 'modules/calib3d/CMakeFiles/opencv_calib3d.dir/all' failed
mingw32-make[1]: *** [modules/calib3d/CMakeFiles/opencv_calib3d.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2
任意のバグレポートや何か他のものを見つけました:(どこかに示唆したように)これで問題が解決しないBUILD_EXAMPLES/PERF_TESTS /テストを不活性化するが、後に同じ問題を与えることは
このエラーに関して。
"calibinit.cpp"を同じように(2回)変更する必要がありましたが、エラーなしでコンパイルしました。ありがとうございました! – Phann