2011-02-24 3 views
0

다른 C 코드를 생성 할 수있는 프로그램을 만들고 있습니다.C에서 C 프로그램을 컴파일하는 방법은 무엇입니까?

첫 번째 프로그램을 사용하여 두 번째 프로그램을 만든 후 즉시 두 번째 프로그램을 컴파일하고 실행 하시겠습니까?

+3

컴파일러를 호출하고 결과를 실행하려면'system'을 사용하십시오. – chrisaycock

+0

그래, 거기에 lil '컴파일러를 쓰려고하지 않는다면 ... – Orbit

답변

6

한 가지 방법은이

+0

나는 두 번째 해결책을 사용하려했지만 명령 창에서 minGW, 모든 솔루션을 설치했지만 인식 할 수 없다고 말했다. – Ardy

+0

프로그램을 실행하기 전에'EXPORT PATH'를 사용해야합니다. –

1

당신이 필요로하는 거라고 할 당신이 simle 배치 또는 스크립트 나 makefile을 사용하여

system("cl generated_file.c -o gen_exe") ; 
system("./gen.exe"); 

또는

system("gcc generated_file.c -o gen.exe"); 
system("./gen.exe"); 

또는 system() 전화를 ... 사용하는 것입니다 (예 : libtcc 또는 lcc) 컴파일러를 컴파일러에 임베드하거나 명령 줄을 통해 컴파일러를 호출 할 수 있지만 사용자가 설치했는지 또는 무엇을 설치했는지 감지해야합니다 스피 이상 앱을 추가 바이너리를 포함

2

내가 하나에 두 개의 노트를 만들 수 있습니다 : 당신이 소스 코드를 생성 한 프로그램이 있다면, 왜 당신을 위해 처리하는 일반적인 빌드 시스템을 사용하지,

먼저? 이것은 첫 번째 프로그램은 항상 좋은 외부 명령을 실행하는 것보다 유닉스 철학에 맞춰 더 많은 것

second_program : second.c 
    $(CC) $(CFLAGS) -o [email protected] $< 

second.c : first_program 
    ./first_program $(GENERATION_OPTIONS) > [email protected] 

first_program : $(LIST_OF_SOURCE_FILES) 
    $(CC) $(CFLAGS) -o [email protected] $< 

: 메이크업 기반 빌드 시스템의 경우는 다음과 같이 보일 수 있습니다.

둘째, 두 번째 프로그램을 동적으로 생성하고 실행 하시겠습니까? 나는. 결과 코드는 첫 번째 프로그램의 일부 동적 상태에 따라 달라지며 두 번째 프로그램의 출력이 첫 번째 프로그램과 관련 될 수 있습니까? 그렇다면 LUA 또는 ECMAScript과 같은 스크립트 언어를 실행하기 위해 라이브러리로 수행 할 수있는 작업을 살펴보아야합니다. (이것은 아마도 여러분이 묻는 경우에 너무 진보 된 것이지만, 어떤 옵션이 있는지 알면 항상 좋다.)

관련 문제