2014-04-16 6 views
12

गुम है, मैं डीएसगिंग के लिए ओएसजी कोड सफलतापूर्वक संकलित और चलाने के लिए अपनी परियोजना को VS2012 में स्थापित करने का प्रयास कर रहा हूं। मैं ओएसजी डीबग पुस्तकालयों का भी उपयोग कर रहा हूं। संकलन और लिंकिंग सफलतापूर्वक समाप्त हो जाती है लेकिन बाइनरी चलाने के बाद मुझे एक त्रुटि मिलती है कि MSVCR120D.dll गुम है।VS2012 MSVCR120D.dll

मैं पूरे दिन इस त्रुटि का समाधान ढूंढ रहा था और यह मुझे समझ में नहीं आता है, क्योंकि मैं वीएस2012 का उपयोग कर रहा हूं जिसे MSVCR110D.dll का उपयोग करना चाहिए। मेरे पास C:\Windows\System32 में यह डीएल भी नहीं है, केवल MSVCR120.dll और इसके पुराने संस्करण हैं।

यदि मैं गैर-डीबग ओएसजी पुस्तकालयों का उपयोग कर रिलीज मोड में प्रोजेक्ट को संकलित करने का प्रयास करता हूं तो सबकुछ ठीक है और मैं सामान्य रूप से त्रुटियों के बिना प्रोजेक्ट चला सकता हूं।

this प्रश्न का जिक्र करते हुए मैं MFC और Runtime Library सेटिंग्स के साथ खेलने की कोशिश कर रहा था लेकिन केवल पुस्तकालयों को ही रिलीज़ करता हूं।

मुझे इसे डीबग पुस्तकालयों के साथ चलाने की आवश्यकता है क्योंकि मैं विजुअल लीक डिटेक्टर का उपयोग करना चाहता हूं जो रिलीज पुस्तकालयों के साथ काम नहीं करता है। यह मैं जिस कोड का उपयोग कर रहा हूं उसका हिस्सा है (ओएसजी libs एक ही वीएस2012 के साथ संकलित हैं)।

#include "stdafx.h" 
#include <windows.h> 

// osg libs 
#include <osgViewer/Viewer> 

int main(int argc, char **argv) { 
    osgViewer::Viewer viewer; 
    while (!viewer.done()) { 
    viewer.frame(); 
    } 
    return 0; 
} 

यहाँ कि त्रुटि का कारण बनता है अपने प्रोजेक्ट की सेटिंग के स्क्रीनशॉट हैं:

General settings of project C/C++ Code Generation submenu

+0

आप केवल गलत बाइनरी का उपयोग कर रहे हैं, वें आईएस को वीएस2013 पर इस्तेमाल करने के लिए बनाया गया था। आपको उन लोगों की आवश्यकता होगी जो VS2012 के अनुकूल हैं। –

+0

क्या आपका मतलब ओएसजी पुस्तकालय है? यह अजीब है, क्योंकि मैंने स्वयं VS2012 के साथ osg libs संकलित किया है, जिसका उपयोग मैं अब कर रहा हूं। – Kalam

+0

नोएट कि मेरे पास वीएलडी रिलीज में भी काम कर रहा है। मुझे नहीं लगता कि यह केवल डीबग मोड में काम करने के लिए प्रतिबंधित है। –

उत्तर

10

कम से कम पुस्तकालयों का उपयोग कर रहे VC12 (2013) का उपयोग कर संकलित किया गया है में से एक है, इसलिए या तो उन्हें पुन: संकलित करें (आप देख सकते हैं कि Dependency Walker का उपयोग करके वीसी 12 पर कौन सी लाइब्रेरी संकलित की गई है या एमएसवीसी 2013 पुनर्वितरण download from here

+3

MSVC2013 'MSVCR120D.dll' नहीं जोड़ता है, लेकिन इसके नाम पर "डी" के बिना केवल lib। मैं निर्भरता वॉकर का प्रयास करूंगा और हम देखेंगे ... और जैसा कि मैं हंस से दुखी हूं, मैं ओएसजी पुस्तकालयों का उपयोग कर रहा हूं जिसे मैंने स्वयं VS2012 के साथ संकलित किया है ... – Kalam

+7

"डी" डीबग जानकारी के लिए खड़ा है, इसलिए एक पुस्तकालयों को वीएस2013 पर डिबगिंग के लिए संकलित किया जाना चाहिए। –

+0

हाँ मुझे यह मिल गया। लेकिन यह वास्तव में अजीब है, क्योंकि मैं कोड के इस छोटे से हिस्से को संकलित कर रहा हूं (प्रश्न में जोड़ा गया), केवल पुस्तकालय कहां हैं, जिन्हें मैंने स्वयं VS2012 के साथ संकलित किया है। क्या मैं किसी भी तरह से सेमेक/जेनरेटेड प्रोजेक्ट में बदल सकता हूं जिसके लिए यह पुस्तकालयों का निर्माण करेगा? कॉन्फ़िगरेशन बटन पर क्लिक करने के बाद, मैं विजुअल स्टूडियो 11 का चयन करता हूं, प्रोजेक्ट जेनरेट करता हूं और फिर मैं इसे डीबग और रिलीज के लिए संकलित करता हूं और बाद में पूरी तरह से करता हूं। मैंने सोचा कि इसे विजुअल स्टूडियो के मेरे संस्करण के साथ संगत परियोजना पुस्तकालय बनाना चाहिए। – Kalam

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