2013-06-10 7 views
10

मैं अपने सी ++ कोड में #include <Python.h> करने की कोशिश कर रहा हूँ और मैं की त्रुटि मिलती है जब मैं अपने कोड संकलित करने के लिए जाना:सी ++ 'python33_d.lib' नहीं मिला में अजगर 3.3 का उपयोग करना

fatal error LNK1104: cannot open file 'python33_d.lib' 

अब मैं करने की कोशिश की मेरे लिंकर निर्भरताओं में शामिल करने के लिए मेरे कंप्यूटर पर python33_d.lib फ़ाइल ढूंढें, लेकिन मुझे नहीं मिला। मैं python33.lib ढूंढने में सक्षम हूं।

मुझे python33_d.lib कहां मिल सकता है, या मैं इस समस्या को कैसे हल कर सकता हूं?

उत्तर

5

*_d.lib डीबग बिल्ड के लिए उपयोग किया जाता है। इसके बजाए एक रिलीज बिल्ड पर स्विच करें।

+0

अब जब मैं इसे python33.dll नहीं मिल सकता है चलाते हैं। मैं इसे अपने प्रोजेक्ट में जोड़ता हूं, क्या मुझे अपनी गुणों में python33.dll के लिए पथ जोड़ने की आवश्यकता है? – user1334858

+0

उस डीएलएल को कहीं भी लोडर को ढूंढने की अपेक्षा करता है, जैसे वर्तमान निर्देशिका। –

+0

ठीक है इसलिए मैंने अपनी वर्तमान निर्देशिका में 'Python33.dll' चिपकाया है और अब मुझे एक उल्लंघन उल्लंघन त्रुटि मिल रही है' PythTest.exe में 0x000000001E17D5CD (python33.dll) पर अनचाहे अपवाद: 0xC0000005: उल्लंघन उल्लंघन स्थान 0x0000000000000008 पर पहुंचें। – user1334858

14

घटना है कि आप एक डिबग संस्करण की आवश्यकता है (मैं काम के लिए करते हैं) में, यह संभव है पुस्तकालय खुद के निर्माण करने के लिए: (7zip

  1. से http://www.python.org/download
  2. स्रोत टारबॉल डाउनलोड टारबॉल निकालें चाल करेगा) और परिणामस्वरूप निर्देशिका में जाना चाहिए (पायथन-3.3.2 की तरह कुछ होना चाहिए)।
  3. अजगर निर्देशिका से, PCBuild फ़ोल्डर में जाएँ। दो महत्वपूर्ण फ़ाइलें यहां हैं: readme.txt, जो Windows में अजगर का निर्माण, और pcbuild.sln है, जो दृश्य स्टूडियो समाधान है कि अजगर बनाता है (भले ही यूनिक्स लाइन फ़ीड शैली ... उपयोग करता है) के लिए निर्देश शामिल हैं।
  4. दृश्य स्टूडियो में खोलें pcbuild.sln। (मुझे लगता है कि आप विजुअल स्टूडियो 10 का उपयोग कर रहे हैं; readme.txt में विजुअल स्टूडियो के पुराने संस्करणों के लिए विशिष्ट निर्देश हैं।)
  5. सुनिश्चित करें कि विजुअल स्टूडियो "डीबग" कॉन्फ़िगरेशन पर सेट है, और फिर अपने उपयुक्त आर्किटेक्चर के लिए समाधान बनाएं (x64 या Win32)। आपको कुछ असफल सबप्रोजेक्ट मिल सकते हैं, लेकिन उनमें से सभी को python33_d बनाने के लिए आवश्यक नहीं है; मेरी गिनती से, 8 बिल्ड विफल हो गए और मुझे वैसे भी एक .lib फ़ाइल मिल गई।
  6. पीसीबील्ड फ़ोल्डर (यदि Win32 बिल्डिंग हो) या amd64 सबफ़ोल्डर (यदि x64 बना रहा हो) में आपको python33_d.lib और python33_d.dll मिलेगा।
+0

यह बहुत उपयोगी है। – slater

7

python bug tracker से सरल समाधान:

#ifdef _DEBUG 
    #undef _DEBUG 
    #include <python.h> 
    #define _DEBUG 
#else 
    #include <python.h> 
#endif 
2

आप python.org पर संस्थापक के माध्यम से अजगर को स्थापित हैं, तो आप संस्थापक बता ऐसे pythonXX_d.dll फ़ाइल के रूप में डिबगिंग प्रतीकों और बाइनरी शामिल करने के लिए कर सकते हैं इंस्टॉल करते समय "स्थापना अनुकूलित करें" का चयन करके (मुझे लगता है कि यह दूसरे अनुकूलन पृष्ठ पर है)। यह सबसे आसान समाधान हो सकता है यदि आप खुद को परियोजना (जैसे मेरे) बनाने में बहुत समझदार नहीं हैं। बहुत बुरा मैं एनाकोंडा वितरण के साथ ऐसा करने का कोई तरीका नहीं देखता हूं।

+1

ध्यान दें कि यह विकल्प पहली स्क्रीन पर नहीं है जिसे आप अनुकूलित करने के बाद देखते हैं (यह मुझे थोड़ी देर के लिए बंद कर देता है)। आपको "अगला" बटन क्लिक करना होगा और फिर आप विकल्प देखेंगे। –

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