2011-09-16 8 views
5
#include<iostream> 
#include<cstdlib> 
#include<cstring> 
#include<cstdio> 
using namespace std; 

class Book{ 
    public: 
     int a; 
     int b; 
}; 

int main() 
{ 
    Book b1; 
    b1.a = 10; 
    b1.b = 20; 
    cout<< b1.a << " " <<b1.b; 
} 

चला जाता है। लेकिन जब हमनिष्पादन बजना साथ ++ उत्पन्न पागल

clang++ test.cc -emit-llvm -S -o a.exe 

और अब जब हम इसे चलाने के लिए, कार्यक्रम ntvdm.exe के लॉन्च के साथ पागल हो जाता है के साथ एक ही कार्यक्रम संकलन (प्रक्रिया एक्सप्लोरर में देखा जा सकता है) और कमांड प्रॉम्प्ट अजीब व्यवहार कर शुरू होता है।

सॉफ्टवेयर ढेर:

clang version 2.9 (tags/RELEASE_29/final) 
Target: i386-pc-mingw32 
Thread model: posix 
+0

बिल्कुल ठीक दिखता है। –

+0

आप '-Wall' को 'clang ++' –

उत्तर

9

'-emit-LLVM एस' आप नहीं दे रही हैं मशीन कोड, लेकिन LLVM बाईटकोड को जोड़ कर। इसे चलाने के लिए, आपको lli का उपयोग करने की आवश्यकता है।

ntvdm.exe रीयल-मोड डॉस प्रोग्राम चलाने के लिए वर्चुअल मशीन है, इसका मतलब यह हो सकता है कि विंडोज़ 16-बिट डॉस प्रोग्राम के रूप में एलएलवीएम बाइटकोड में निष्पादन योग्य व्याख्या करता है और इसे एक के रूप में चलाने की कोशिश करता है।

+0

पर गुजरना भूल गए उत्कृष्ट मैं गलती को समझ गया .. धन्यवाद .... –

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