2011-09-16 1 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를 시작하여 미친 간다와 같은 프로그램을 컴파일 할 때 (프로세스 탐색기에서 볼 수있다) 및 명령 프롬프트가 이상한 행동을 시작합니다.

소프트웨어 스택 '-emit-LLVM -S'당신은 기계 코드를 생성하는 것이 아니라, LLVM 바이트 코드를 추가하여

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

완벽하게 잘 보입니다. –

+0

'-Wall'을'clang ++'에 패스하는 걸 잊었습니다. –

답변

9

. 이를 실행하려면 lli을 사용해야합니다.

ntvdm.exe은 리얼 모드 DOS 프로그램을 실행하기위한 가상 시스템이므로 Windows는 LLVM 바이트 코드의 실행 파일을 16 비트 DOS 프로그램으로 해석하고이를 하나의 프로그램으로 실행하려고 할 수 있습니다.

+0

훌륭함은 실수를 이해했습니다 .. 고마워요 .... –