【问题标题】:How to static link every .dll except cygwin1.dll?如何静态链接除 cygwin1.dll 之外的每个 .dll?
【发布时间】:2021-12-06 01:48:04
【问题描述】:
cmake_minimum_required(VERSION 3.5)

project(Photomosaics LANGUAGES CXX)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(Photomosaics main.cpp)
add_definitions( -DMAGICKCORE_QUANTUM_DEPTH=16 )
add_definitions( -DMAGICKCORE_HDRI_ENABLE=0 )
find_package(ImageMagick COMPONENTS Magick++ MagickCore)
include_directories(${ImageMagick_INCLUDE_DIRS})
target_link_libraries(Photomosaics ${ImageMagick_LIBRARIES})

我一直在尝试生成一个只需要 cygwin1.dll 即可在 cygwin 中运行的可执行文件,但它报告说它缺少 cygautotrace-3.dll cygbz2-1.dll cygcario-2.dll 和许多其他的。

程序在 cygwin 的 bin 目录中运行时确实按预期运行。但我希望它只需要cygwin1.dll 运行并将所有其他.dll 文件烘焙到程序中。我做错了什么?

【问题讨论】:

    标签: c++ cmake cygwin static-linking


    【解决方案1】:

    这并不是一个正确的修复方法,但我刚开始使用 eclipse 并手动定义了我需要的库。然后使用 IDE 中的选项静态链接除 cygwin1.dll 之外的所有内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      相关资源
      最近更新 更多