mkdir build && cd build cmake -G "Visual Studio 16 2019" -T v142 .. cmake –build . –config Release
cmake -S . -G "Visual Studio 16 2019" -T v142 -B build cmake –build build –config Release cmake .. -G "Visual Studio 16 2019" -T v142
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg install freetype:x64-windows harfbuzz:x64-windows
vcpkg install pkgconf:x64-windows
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
cmake -S . -G "Visual Studio 16 2019" -T v142 -B build
mkdir opencv_build cd opencv_build
set PKG_CONFIG_EXECUTABLE=I:\opencv_work\vcpkg\packages\pkgconf_x64-windows\tools\pkgconf\pkgconf.exe set PKG_CONFIG_PATH=I:\opencv_work\vcpkg\installed\x64-windows\lib\pkgconfig
"I:\opencv_work\vcpkg\packages\pkgconf_x64-windows\tools\pkgconf\pkgconf.exe" –modversion freetype2
cmake ^
-G "Visual Studio 16 2019" -T v142 ^
-A x64 ^
-DCMAKE_INSTALL_PREFIX=I:/opencv_work/install ^
-DOPENCV_EXTRA_MODULES_PATH=I:/opencv_work/opencv_contrib/modules ^
-DWITH_FREETYPE=ON ^
-DWITH_HARFBUZZ=ON ^
-DWITH_TEXT=ON ^
-DCMAKE_TOOLCHAIN_FILE=I:/opencv_work/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DPKG_CONFIG_EXECUTABLE=I:/opencv_work/vcpkg/packages/pkgconf_x64-windows/tools/pkgconf/pkgconf.exe ^
-DPKG_CONFIG_PATH=I:/opencv_work/vcpkg/installed/x64-windows/lib/pkgconfig ^
-DCMAKE_BUILD_TYPE=Release ^
-DHARFBUZZ_INCLUDE_DIRS=I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/include/harfbuzz ^
I:/opencv_work/opencv
cmake ^
-G "Visual Studio 16 2019" -T v142 ^
-A x64 ^
-DCMAKE_INSTALL_PREFIX=I:/opencv_work/install ^
-DOPENCV_EXTRA_MODULES_PATH=I:/opencv_work/opencv_contrib/modules ^
-DWITH_FREETYPE=ON ^
-DWITH_HARFBUZZ=ON ^
-DWITH_TEXT=ON ^
-DCMAKE_TOOLCHAIN_FILE=I:/opencv_work/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DCMAKE_BUILD_TYPE=Release ^
-DPKG_CONFIG_EXECUTABLE=I:/opencv_work/vcpkg/packages/pkgconf_x64-windows/tools/pkgconf/pkgconf.exe ^
-DPKG_CONFIG_PATH=I:/opencv_work/vcpkg/installed/x64-windows/lib/pkgconfig ^
-DFREETYPE_INCLUDE_DIR_ft2build=I:/opencv_work/vcpkg/packages/freetype_x64-windows/include ^
-DFREETYPE_INCLUDE_DIR_freetype2=I:/opencv_work/vcpkg/packages/freetype_x64-windows/include/freetype ^
-DHARFBUZZ_INCLUDE_DIRS=I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/include/harfbuzz ^
I:/opencv_work/opencv
cmake ^
-G "Visual Studio 16 2019" -T v142 ^
-A x64 ^
-DCMAKE_INSTALL_PREFIX=I:/opencv_work/install ^
-DOPENCV_EXTRA_MODULES_PATH=I:/opencv_work/opencv_contrib/modules ^
-DWITH_FREETYPE=ON ^
-DWITH_HARFBUZZ=ON ^
-DWITH_TEXT=ON ^
-DCMAKE_TOOLCHAIN_FILE=I:/opencv_work/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-DCMAKE_BUILD_TYPE=Debug ^
-DPKG_CONFIG_EXECUTABLE=I:/opencv_work/vcpkg/packages/pkgconf_x64-windows/tools/pkgconf/pkgconf.exe ^
-DPKG_CONFIG_PATH=I:/opencv_work/vcpkg/installed/x64-windows/lib/pkgconfig ^
-DFREETYPE_INCLUDE_DIR_ft2build=I:/opencv_work/vcpkg/packages/freetype_x64-windows/include ^
-DFREETYPE_INCLUDE_DIR_freetype2=I:/opencv_work/vcpkg/packages/freetype_x64-windows/include/freetype ^
-DHARFBUZZ_INCLUDE_DIRS=I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/include/harfbuzz ^
I:/opencv_work/opencv
cmake --build . --config Release --target INSTALL
cmake --build . --config Debug --target INSTALL
vcpkg/installed/x64-windows/include/
vcpkg/installed/x64-windows/lib/
vcpkg/installed/x64-windows/bin/
rmdir /s /q opencv_build mkdir opencv_build cd opencv_build
检查是否生效 配置完后,查看终端输出中是否有:
-- freetype: YES (ver ...)
-- harfbuzz: YES (ver ...)
-- Module opencv_freetype will be built
-- FREETYPE_INCLUDE_DIRS:
-- FREETYPE_LIBRARIES:
-- HARFBUZZ_INCLUDE_DIRS: I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/include/harfbuzz
-- HARFBUZZ_LIBRARIES:
-- freetype2: YES (ver )
-- harfbuzz: YES (ver )
freetype\CMakeLists.txt I:\opencv_work\vcpkg\packages\pkgconf_x64-windows\tools\pkgconf\pkgconf.exe
# Manually specify the include and library directories for FreeType and HarfBuzz
set(FREETYPE_INCLUDE_DIR_ft2build "I:/opencv_work/vcpkg/packages/freetype_x64-windows/include")
set(FREETYPE_INCLUDE_DIR_freetype2 "I:/opencv_work/vcpkg/packages/freetype_x64-windows/include/freetype")
set(HARFBUZZ_INCLUDE_DIRS "I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/include/harfbuzz")
set(FREETYPE_FOUND 1)
set(HARFBUZZ_FOUND 1)
if (NOT FREETYPE_FOUND)
message(FATAL_ERROR "FREETYPE not found. Make sure freetype2.pc is available via pkg-config or set manually.")
endif()
if (NOT HARFBUZZ_FOUND)
message(FATAL_ERROR "HARFBUZZ not found. Make sure harfbuzz.pc is available via pkg-config or set manually.")
endif()
message(STATUS "FREETYPE_INCLUDE_DIRS: ${FREETYPE_INCLUDE_DIRS}")
message(STATUS "FREETYPE_LIBRARIES: ${FREETYPE_LIBRARIES}")
message(STATUS "HARFBUZZ_INCLUDE_DIRS: ${HARFBUZZ_INCLUDE_DIRS}")
message(STATUS "HARFBUZZ_LIBRARIES: ${HARFBUZZ_LIBRARIES}")
# 根据 CMAKE_BUILD_TYPE 变量设置库路径
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
# Debug 构建时使用 debug 库
set(FREETYPE_LIBRARY_RELEASE "I:/opencv_work/vcpkg/packages/freetype_x64-windows/debug/lib/freetyped.lib")
set(HARFBUZZ_LIBRARY "I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/debug/lib/harfbuzz.lib")
else()
# Release 构建时使用 release 库
set(FREETYPE_LIBRARY_RELEASE "I:/opencv_work/vcpkg/packages/freetype_x64-windows/lib/freetype.lib")
set(HARFBUZZ_LIBRARY "I:/opencv_work/vcpkg/packages/harfbuzz_x64-windows/lib/harfbuzz.lib")
endif()
if (FREETYPE_FOUND AND HARFBUZZ_FOUND)
ocv_define_module(freetype opencv_core opencv_imgproc WRAP python)
ocv_target_link_libraries(${the_module} ${FREETYPE_LIBRARIES} ${HARFBUZZ_LIBRARIES}
${FREETYPE_LIBRARY_RELEASE} ${HARFBUZZ_LIBRARY}
)
ocv_include_directories( ${FREETYPE_INCLUDE_DIRS} ${HARFBUZZ_INCLUDE_DIRS}
"I:/opencv_work/vcpkg/packages/freetype_x64-windows/include"
"I:/opencv_work/vcpkg/packages/freetype_x64-windows/include/freetype"
)
else()
ocv_module_disable(freetype)
endif()
编译时确保链接了 opencv_freetype470.lib 以及 opencv_world470.lib 或其他相关模块。
/vcpkg/packages/freetype_x64-windows/include/freetype