2011-10-16 18 views
7

मैं विभिन्न खुला स्रोत परियोजनाओं, जो निम्नलिखित सी ++ पुस्तकालयों (& अन्य) को शामिल पर काम कर रहा है के लिए:विंडोज पैकेज प्रबंधक सी ++ पुस्तकालयों

  • MuPDF
  • बूस्ट
  • freetype
  • GTKmm
  • hummus पीडीएफ पुस्तकालयों
  • LibTiff
  • libxml2
  • Wt xpdf
  • xpdf
  • Poppler
  • zlib

यह अक्सर जब उन्हें एक साफ मशीन पर स्थापित करने, इन पुस्तकालयों कॉन्फ़िगर करने के लिए एक लंबा समय लगता। क्या विंडोज़ मशीन पर सभी निर्भरताओं के हथियाने को स्वचालित करने का कोई तरीका है?

निकटतम मैंने पाया CMake, जो वाकई निर्भरता स्थापित/अपनी परियोजना फ़ाइलों को पैदा करने से पहले निकाली गई राशि बनाने के लिए जांच करता है। लेकिन मुझे विंडोज़ के लिए कुछ भी नहीं मिला है जो निर्भरताओं की सूची को पार्स कर सकता है और फिर आवश्यक संस्करणों को डाउनलोड/इंस्टॉल कर सकता है।

अप-टू-डेट सी ++ पुस्तकालयों के साथ विंडोज के लिए एक पैकेज प्रबंधक की सिफारिश करें।

उत्तर

2

Hunter package manager पर एक नज़र डालें जब आप पहले से ही अपने प्रोजेक्ट को सेट करने के लिए सीएमके का उपयोग करते हैं। यह स्वचालित रूप से डाउनलोड और आपकी निर्भरताओं का निर्माण करता है, जबकि अतिरिक्त सेमेक कोड की केवल कुछ पंक्तियां होती हैं। हंटर सेमेक निर्यात और आयात लक्ष्यों पर आधारित है।

उदाहरण के लिए आप

# 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- उपलब्ध हैं अपने cmake आधारित परियोजना में GoogleTest पुस्तकालय का उपयोग करने से आप अपने जड़ CMakeLists.txt निम्न पंक्तियां जोड़ें होगा चाहते हैं पैकेज "लेकिन परियोजना ओपन सोर्स है ताकि आप अपनी निर्भरताओं के लिए शिकारी-पैकेज बना सकें और उन्हें परियोजना में प्रतिबद्ध कर सकें। Here पुस्तकालयों की एक सूची है जो शिकारी पैकेज के रूप में पहले से ही उपलब्ध हैं।

यह आपकी सभी समस्याओं को बॉक्स से बाहर नहीं करेगा क्योंकि आपको अपनी निर्भरताओं के लिए शिकारी-पैकेज बनाना है। लेकिन मौजूदा ढांचे में पहले से ही बहुत सारे काम हैं और आधे गधे वाले स्वयं के समाधान के बजाय इसका उपयोग करना बेहतर है।

+0

मुझे लगता है कि मैं 5 साल पहले जो खोज रहा था उसके सबसे नज़दीक है! –

1

विंडोज एक पैकेज प्रबंधक नहीं है। पुस्तकालयों की वेबसाइट पर जाएं और अगर वे कोई भी प्रदान करते हैं तो विंडोज़ बिल्ड डाउनलोड करें।

कुछ विकल्प हैं, लेकिन कमियां के बिना नहीं:

  • Cygwin: जिसका मतलब है कि वे अपनी मूल बराबर की तुलना में धीमी चलाने के लिए एक अच्छा पैकेज प्रबंधक प्रदान करता है, लेकिन सभी बाइनरी Cygwin के लिए निर्माण कर रहे हैं, उन्हें उपयोग कर किसी भी क्षुधा सिग्विन डीएलएल से लिंक होगा, और आप उस लाइसेंस से फंस गए हैं। मूल Win32 API का उपयोग कभी-कभी POSIX अनुकरण के साथ असंगतता के कारण परेशानी होती है। केवल जीसीसी के लिए।
  • मिनजीडब्ल्यू-प्राप्त: MinGW.org कंपाइलर के लिए एक पैकेज प्रबंधक है। ये देशी Win32 बाइनरी हैं, लेकिन केवल मिनीजीडब्ल्यू के जीसीसी के उपयोग के लिए।

विजुअल स्टूडियो या मिनजीडब्ल्यू-डब्ल्यू 64 संबंधित किसी भी पैकेज प्रबंधक या थोड़ा समतुल्य चीज़ नहीं है।

+0

मुझे डर था कि मामला था; हालांकि, अगर कोई व्यक्ति किसी को मिला/बनाया गया है, तो मैं प्रश्न खुला रखूंगा ... –

+0

प्रत्येक विज़ुअल स्टूडियो रिलीज के लिए प्रत्येक एमएसवीसीआर * डीएल के लिए अनिवार्य रूप से द्विआधारी की प्रतियां बनाए रखी जाएंगी (वे सी ++ को तोड़ते हैं प्रत्येक (एसपी) रिलीज के साथ एबीआई संगतता), प्रत्येक मिनीजीडब्ल्यू संस्करण के लिए (जो तकनीकी रूप से सभी msvcr * dll संस्करणों से लिंक हो सकता है)। मुझे नहीं लगता कि लोड और बिना काम के काम के लोड के बिना यह बहुत संभव है। यह बहुत दुर्भाग्यपूर्ण है, मुझे पता है। – rubenvb

2

विंडोज पर कोई पैकेज प्रबंधन नहीं है। विंडोज डेवलपर्स पर आम तौर पर पूरी तरह से उड़ाए गए सब कुछ-रसोई-सिंक विकास वातावरण का उपयोग करते हैं और सभी निर्भरताओं के साथ भेजे गए मोनोलिथिक अनुप्रयोगों का उत्पादन करते हैं।

1

मैं क्या पाया है:

के निकटतम बात मैं के लिए क्या देख रहा हूँ:

दुर्भाग्य से यह पुस्तकालयों मैं में आवश्यकता के किसी भी नहीं है इसकी भंडार

तो मैंने KDE4windows project से अधिकांश पुस्तकालयों को प्राप्त करने और बाकी के कस्टम निर्माण को समाप्त कर दिया।

1

Npackd विंडोज के लिए एक पैकेज प्रबंधक है। विजुअल स्टूडियो 2010 64 बिट पुस्तकालयों के लिए एक डिफ़ॉल्ट repository for C++ libraries और तृतीय पक्ष repository भी है। बूस्ट और zlib पहले से ही डिफ़ॉल्ट भंडार में हैं। यदि आप Npackd का उपयोग करने का निर्णय लेते हैं, तो आपको अन्य पुस्तकालयों की आवश्यकता होने पर file an issue मिल सकता है।

2

Biicode सी ++ के लिए एक नया निर्भरता प्रबंधक है। इसमें आपके द्वारा सूचीबद्ध कुछ पुस्तकालय भी हैं। बायिकोड स्वचालित रूप से निर्भरता, डाउनलोड और उन्हें बनाने के लिए आपकी स्रोत फ़ाइलों को स्कैन करता है। एक बहुत ही अच्छे उदाहरण के लिए here देखें जिसमें फ्रीग्लूट शामिल है।

2

Vcpkg, एक माइक्रोसॉफ्ट ओपन सोर्स प्रोजेक्ट, आपको विंडोज़ पर सी और सी ++ लाइब्रेरी प्राप्त करने में मदद करता है।

+0

वे सीएमके का उपयोग करते हैं ... मैं सिर्फ परेशान हूं कि यह किसी भी तरह से क्रॉस-प्लेटफॉर्म नहीं है। पिछली बार कॉनन का उपयोग कर रहा था, लेकिन उनके पैकेजों की संख्या वास्तव में बढ़ रही नहीं है:/- संपादित करें: वास्तव में मुझे लगता है कि यह टूल वह हो सकता है जो मैं ढूंढ रहा था। इसे जांच लेंगे। +1 –

संबंधित मुद्दे