Диспетчер пакетов Windows для библиотек c++

Я работал над различными проектами с открытым исходным кодом, которые включают следующие библиотеки C++ (и другие):

  • MuPDF
  • Boost
  • FreeType
  • GTKmm
  • hummus PDF библиотеки
  • библиотеки libtiff
  • библиотеки libxml2
  • Wt xpdf
  • xpdf
  • Poppler
  • ZLib

часто требуется много времени для настройки этих библиотек при их настройке на чистой машине. Есть ли способ автоматизировать захват всех зависимостей на машине windows?

ближе всего я нашел CMake, который проверяет, чтобы убедиться, что у вас установлены/извлечены зависимости Перед созданием файлов проекта. Но я не нашел ничего для Windows, который может проанализировать список зависимостей, а затем загрузить+установить необходимые версии.

пожалуйста, порекомендуйте менеджер пакетов для Windows с современными библиотеками C++.

7 ответов


посмотри менеджер пакетов Hunter когда вы уже используете CMake для настройки вашего проекта. Он автоматически загружает и строит ваши зависимости с помощью всего нескольких строк дополнительного кода cmake. Hunter основан на целях экспорта и импорта cmake.

# file root CMakeLists.txt 

cmake_minimum_required(VERSION 3.0)

# To get hunter you need to download and include a single cmake file
# see documentation for correct name
include("../gate.cmake") 


project(download-gtest)

# set the location of all your hunter-packages
set( HUNTER_ROOT_DIR C:/CppLibraries/HunterLibraries )   

# This call automaticall downloads and compiles gtest the first time
# cmake is executed. The library is then cached in the HUNTER_ROOT_DIR
hunter_add_package(GTest)

# Now the GTest library can be found and linked to by your own project
find_package(GTest CONFIG REQUIRED)

add_executable(foo foo.cpp)
target_link_libraries(foo GTest::main)

Не все библиотеки, которые вы перечисляете доступно как "hunter-packages", но проект является открытым исходным кодом, поэтому вы можете создавать hunter-packages для своих зависимостей и фиксировать их в проекте. здесь - Это список библиотек, которые уже доступны в качестве пакетов hunter.

Это не решит все ваши проблемы из коробки, потому что вам нужно создать hunter-пакеты для ваших зависимостей. Но существующая структура уже делает много работы, и лучше использовать это вместо того, чтобы иметь наполовину решение самосделанными.


Vcpkg, проект с открытым исходным кодом Microsoft, поможет вам получить библиотеки C и C++ в Windows.


Biicode новый менеджер зависимостей для C++. Также есть несколько библиотек, которые вы перечислили. Biicode автоматически сканирует исходные файлы на наличие зависимостей, загружает и создает их. См.здесь для очень классного примера, который включает Freeglut.


в Windows нет управления пакетами. В Windows разработчики обычно используют полномасштабные среды разработки "все-и-кухня-раковина" и сами производят монолитные приложения, поставляемые со всеми зависимостями.


Что я нашел:

ближе всего к тому, что я ищу:

к сожалению, у него нет ни одной из библиотек, которые мне нужны в его репозитории.

таким образом, я закончил получать большинство библиотек из проект KDE4windows и таможня строя остальные.


Npackd менеджер пакетов для Windows. Существует значение по умолчанию хранилище для библиотеки C++, а также третье лицо хранилище для 64-разрядных библиотек Visual Studio 2010. Boost и zlib уже находятся в репозитории по умолчанию. Если вы решите использовать Npackd, вы можете проблема Если вам нужны другие библиотеки.


Windows не имеет диспетчера пакетов. Перейдите на веб-сайт библиотек и загрузите сборки Windows, если они предоставляют какие-либо.

есть несколько альтернатив, но не без недостатков:

  • Cygwin: предоставляет хороший менеджер пакетов, но все двоичные файлы построены для Cygwin, что означает, что они работают медленнее, чем их родной эквивалент, любые приложения, использующие их, будут ссылаться на библиотеку DLL Cygwin, и вы застряли с этой лицензией. Также использование "родной" Win32 API является иногда хлопотно из-за несовместимости с предложенной эмуляцией POSIX. Только для GCC.
  • MinGW-get: менеджер пакетов для MinGW.org компилятор. Это собственные двоичные файлы Win32, но только для использования с GCC MinGW.

нет диспетчера пакетов или немного эквивалентной вещи для всего, что связано с Visual Studio или MinGW-w64.