From 11df47ff2e993748dbe51b78cff78dc0a3b86eb7 Mon Sep 17 00:00:00 2001 From: zsyg <3872006562@qq.com> Date: Thu, 17 Jul 2025 12:03:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E4=B8=BAcmake=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../C++/Image_format_converter/CMakeLists.txt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 others/C++/Image_format_converter/CMakeLists.txt diff --git a/others/C++/Image_format_converter/CMakeLists.txt b/others/C++/Image_format_converter/CMakeLists.txt new file mode 100644 index 0000000..bf9ed48 --- /dev/null +++ b/others/C++/Image_format_converter/CMakeLists.txt @@ -0,0 +1,60 @@ +cmake_minimum_required(VERSION 3.10) +project(ImageFormatConverter) + +# 设置静态编译 +set(CMAKE_EXE_LINKER_FLAGS "-static") +set(BUILD_SHARED_LIBS OFF) +set(CMAKE_FIND_LIBRARY_SUFFIXES .a) + +# 设置C++标准 +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# 查找依赖库(静态版本) +find_package(PkgConfig REQUIRED) +pkg_check_modules(TIFF REQUIRED libtiff-4) +find_library(TIFF_STATIC_LIB NAMES libtiff.a PATHS ${TIFF_LIBRARY_DIRS}) + +pkg_check_modules(WEBP REQUIRED libwebp) +find_library(WEBP_STATIC_LIB NAMES libwebp.a PATHS ${WEBP_LIBRARY_DIRS}) + +# 使用find_package查找FLTK(静态版本) +find_package(FLTK REQUIRED) +find_library(FLTK_STATIC_LIB NAMES libfltk.a PATHS ${FLTK_LIBRARY_DIRS}) + +# 包含头文件目录 +include_directories(include ${TIFF_INCLUDE_DIRS} ${WEBP_INCLUDE_DIRS} ${FLTK_INCLUDE_DIRS}) + +# 收集所有源文件 +file(GLOB SOURCES "src/*.cpp") + +# 创建可执行文件(设置为WIN32应用程序避免控制台窗口) +add_executable(ImageFormatConverter WIN32 ${SOURCES}) + +# 查找更多依赖库 +find_library(JPEG_STATIC_LIB NAMES libjpeg.a) +find_library(ZLIB_STATIC_LIB NAMES libz.a) +find_library(ZSTD_STATIC_LIB NAMES libzstd.a) +find_library(SHARPYUV_STATIC_LIB NAMES libsharpyuv.a) +find_library(JBIG_STATIC_LIB NAMES libjbig.a) +find_library(LZMA_STATIC_LIB NAMES liblzma.a) +find_library(LIBDEFLATE_STATIC_LIB NAMES libdeflate.a) +find_library(LERC_STATIC_LIB NAMES liblerc.a) + +# 链接静态库 +target_link_libraries(ImageFormatConverter + ${TIFF_STATIC_LIB} + ${WEBP_STATIC_LIB} + ${FLTK_STATIC_LIB} + ${JPEG_STATIC_LIB} + ${ZLIB_STATIC_LIB} + ${ZSTD_STATIC_LIB} + ${SHARPYUV_STATIC_LIB} + ${JBIG_STATIC_LIB} + ${LZMA_STATIC_LIB} + ${LIBDEFLATE_STATIC_LIB} + ${LERC_STATIC_LIB} + -lstdc++ -lgcc -lwinpthread -lcomctl32 -lole32 -luuid -lws2_32) + +# 设置输出目录 +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)