2012-05-16 3 views
2

PHP에서 'C'코드를 컴파일하려고합니다. WindowsXP와 cygwin을 사용하여 코드를 컴파일하고 있습니다..C 파일을 작성하지 않고 C 코드 컴파일

PHP 코드

$a = ' int main(){ int i; for(i= 0;i!=10;i++) printf("Its Worked");return 0;}'; 

$o = exec('echo '.$a.' | c:\cygwin\bin\gcc-3 -xc - -o "c:\o\ank.exe"', $errD , $err); 

그것은 완벽하게 작동하고 내가 원하는 같은 .exe 파일을 확인한다 : 나는 같은 코드를 실행합니다.

하지만 즉 코드 코드의 새로운 라인이있는 경우입니다 지금

$a = ' int main() 
{ 
int i; 
for(i= 0;i!=10;i++) 
printf("Its Worked"); 
return 0; 
} '; 

$o = exec('echo '.$a.' | c:\cygwin\bin\gcc-3 -xc - -o "c:\o\ank.exe"', $errD , $err); 

이 오류를 컴파일 할 수 있습니다.

.c 파일을 만들어서 이러한 코드를 컴파일하는 방법을 알려줄 수 있습니까? 헤더 파일을 새 라인이 필요하기 때문에 포함시킬 수 없습니다. 등 '%'와 같은

또한 인식되지 않는 특수 문자

모든 답변과 제안을 환영합니다.

+0

오류가 발생했는지 확인 하시겠습니까?! – ThiefMaster

+3

에코와 escapeshellarg로 교활해질 수는 있습니다. – Corbin

+0

@ThiefMaster 그것은 .exe 파일을 만들지 않으며 아마도 모든 새로운 줄을 고려하고 아마도 'int main()'코드에서 첫 번째 줄만 실행합니다.이 줄은 컴파일 할 필요가 없습니다. –

답변

1

exc 명령 전에 사용 : $ a = preg_replace ("/ \ n /", '', $ a); // 실제로 실행되는 코드가 한 줄만 포함하도록 새 줄을 모두 지우십시오.

관련 문제