- OpenCV => 3.2
- Operating System / Platform => macOS10.12
- Compiler => XCode8.2
- freetype version => 2.7
Undefined symbols for architecture x86_64:
"_FT_Done_Face", referenced from:
cv::freetype::FreeType2Impl::~FreeType2Impl() in freetype.o
cv::freetype::FreeType2Impl::loadFontData(cv::String, int) in freetype.o
"_FT_Done_FreeType", referenced from:
cv::freetype::FreeType2Impl::~FreeType2Impl() in freetype.o
"_FT_Init_FreeType", referenced from:
cv::freetype::FreeType2Impl::FreeType2Impl() in freetype.o
cv::freetype::FreeType2Impl::FreeType2Impl() in freetype.o
cv::freetype::createFreeType2() in freetype.o
"_FT_Load_Glyph", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_FT_New_Face", referenced from:
cv::freetype::FreeType2Impl::loadFontData(cv::String, int) in freetype.o
"_FT_Outline_Decompose", referenced from:
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_FT_Outline_Transform", referenced from:
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_FT_Outline_Translate", referenced from:
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_FT_Render_Glyph", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
"_FT_Set_Pixel_Sizes", referenced from:
cv::freetype::FreeType2Impl::putText(cv::_InputOutputArray const&, cv::String const&, cv::Point_<int>, int, cv::Scalar_<double>, int, int, bool) in freetype.o
"_hb_buffer_add_utf8", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_hb_buffer_create", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_hb_buffer_destroy", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_hb_buffer_get_glyph_infos", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_hb_buffer_guess_segment_properties", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
"_hb_font_destroy", referenced from:
cv::freetype::FreeType2Impl::~FreeType2Impl() in freetype.o
cv::freetype::FreeType2Impl::loadFontData(cv::String, int) in freetype.o
"_hb_ft_font_create", referenced from:
cv::freetype::FreeType2Impl::loadFontData(cv::String, int) in freetype.o
"_hb_shape", referenced from:
cv::freetype::FreeType2Impl::putTextBitmapBlend(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextBitmapMono(cv::_InputOutputArray const&) in freetype.o
cv::freetype::FreeType2Impl::putTextOutline(cv::_InputOutputArray const&) in freetype.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
on line 22 of opencv-freetype CMakefile, change ${freetype2_LIBRARIES} ${harfbuzz_LIBRARIES} to ${FREETYPE_LIBRARIES} ${HARFBUZZ_LIBRARIES}
I think ocv_define_module() line in opencv_contrib/module/freetype/CMakeFile.txt will cause this problem. FREETYPE_INCLUDE_DIRS and HARFBUZZ_INCLUDE_DIRS seems to be used with clang. But freetype2_LIBRARIES and harfbuzz_LIBRARIES do not seem to be used with ld.
Following works well in Ubuntu 16.04 LTS. Would you try this fix in macOS10.12 ?