2010-09-29 11 views
5

मैं सीएमके का उपयोग करके ज़ज़ोगल संकलित करने का प्रयास कर रहा हूं और मैं मुद्दों में चल रहा हूं। मेरी पहली समस्या ने कहा कि मुझे pkgconfig की आवश्यकता है, इसलिए मैंने इसे स्थापित किया, जिसके लिए मुझे मैकपॉर्ट्स भी इंस्टॉल करना पड़ा। फिर उसने कहा कि मुझे gtk + -2.0 मॉड्यूल की आवश्यकता है, इसलिए मुझे वह भी मिला। उसके बाद स्थापित करने के लिए हमेशा के लिए ले लिया है, मैं अभी भी इस त्रुटि मिलती है:सीएमके का उपयोग कर समस्या: gtk मॉड्यूल

checking for module 'gtk+-2.0' 
package 'gtk+-2.0' not found 
CMake Error at /Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:266 (message): 
A required package was not found 
Call Stack (most recent call first): 
/Applications/CMake 2.8-2.app/Contents/share/cmake-2.8/Modules/FindPkgConfig.cmake:320 (_pkg_check_modules_internal) 
CMakeLists.txt:106 (pkg_check_modules) 


CMake Error at cmake/funcs.cmake:32 (message): 
gtk not found, aborting... 
Call Stack (most recent call first): 
cmake/funcs.cmake:23 (reportFound) 
CMakeLists.txt:107 (checkFor) 


Configuring incomplete, errors occurred! 

मैं क्या मैं कर रहा हूँ के साथ वास्तव में परिचित नहीं हूँ, और यह पूरी तरह संभव मैं यह सब गलत कर रहा हूँ। किसी को भी मेरी समस्या में कोई उत्तेजना है? मैं बर्फ तेंदुए बीटीडब्ल्यू के साथ एक मैक का उपयोग कर रहा हूँ।

उत्तर

3

क्या आपने gtk को sudo port install gtk2 के समान आदेश के साथ स्थापित किया था? यदि हां, तो आमतौर पर gtk cmake द्वारा पाया जाना चाहिए। यदि जीटीके सही ढंग से मैन्युअल रूप से इस तरह pkg-config से पाया जाता है आप परीक्षण कर सकते हैं:

pkg-config --cflags gtk+-2.0 

जो

-pthread -D_REENTRANT -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 

लेकिन अलग अलग रास्तों के साथ की तरह कुछ प्रिंट करना चाहिए, इसके बाद के संस्करण एक Linux सिस्टम पर है।

यदि वास्तव में पीकेजी-कॉन्फ़िगर कॉल सफल होता है, तो आपके सीएमके कॉन्फ़िगरेशन में कुछ गड़बड़ है। फिर आप इस तरह से cmake के MacPorts संस्करण को स्थापित करने का प्रयास कर सकते हैं: sudo port install cmake और इसका उपयोग करें।

+0

प्रतिक्रिया के लिए धन्यवाद, लेकिन pkg-config चलाने के बाद --cflags जीटीके + -2.0 मैं मूल रूप से मिल गया है कि तुम क्या था, लेकिन की जगह मैं/usr/lib/जीटीके साथ: मैं/opt/स्थानीय /include/gtk-2.0 आदि। फिर मैंने कमांड लाइन के साथ फिर से cmake स्थापित करने का प्रयास किया, फिर फिर संकलन करने की कोशिश की। मैं अपनी पिछली कोशिश, verbatim के रूप में एक ही त्रुटि के साथ समाप्त हो गया। – MBguitarburst

+0

क्या आपने उसी टर्मिनल से सीएमके शुरू किया था जिसमें पीकेजी-कॉन्फ़िगरेशन काम करता था? तो मैं वास्तव में विचारों से बाहर हूं ... – fschmitt

+0

मूल रूप से मैं एक गुई के साथ एक सीएमके आवेदन चला रहा था। हालांकि इस बार मैंने इसे कमांड लाइन में चलाया: cmake zzogl। मुझे लगता है कि यह सही था? – MBguitarburst

3

ठीक है, मैंने FindGTK2.cmake मॉड्यूल में देखा था और मुझे लगता है कि मुझे समस्या दिखाई दे रही है: यह pkg-config का उपयोग नहीं करता है, लेकिन हेडर और पुस्तकालयों को ढूंढने का अपना तरीका है। _GTK2_FIND_INCLUDE_DIR फ़ंक्शन में निर्देशिकाओं की सूची में /opt/local/include/ नहीं है, जहां मैकपॉर्ट्स शायद हेडर इंस्टॉल करने जा रहे हैं। इसी प्रकार, _GTK2_FIND_LIBRARY/opt/local/lib सूचीबद्ध नहीं करता है।

यह known bug है, जो स्पष्ट रूप से CMake 2.8.3-rc1 में तय किया गया था। मुझे संदेह है, हालांकि, क्योंकि उन्होंने लाइब्रेरी पथ को अपडेट नहीं किया है। हम देखेंगे।

मैंने find_path और find_library के लिए प्रलेखन को देखा। ऐसा प्रतीत होता है कि उपयोगकर्ता -D विकल्पों को cmake पर निर्दिष्ट करके खोज पथ के बारे में संकेत दे सकता है। की तरह कुछ का प्रयास करें:

cmake ../zzogl -DCMAKE_INCLUDE_PATH=/opt/local/include -DCMAKE_LIBRARY_PATH=/opt/local/lib 
+0

बढ़िया! -DCMAKE _ * _ पाथ मेरे लिए काम नहीं किया, लेकिन दिए गए लिंक पर पैच किया।मैंने अपने स्रोत डीआईआर में सीएमके मॉड्यूल निर्देशिका में FindGTK2.cmake की प्रतिलिपि बनाई है, पैच से परिवर्तन किए हैं, और मेरे मुख्य CMakeLists.txt में जोड़ा गया सेट (CMAKE_MODULE_PATH "$ {CMAKE_SOURCE_DIR}/CMakeModules /") जोड़ा है। – rcv