펄 컴파일 어떻게 하시나요??

azalea의 이미지

펄로 이거저거 만들어 놓았는데..
소스 컴파일을 해야 할 상황이어서 여러가지 컴파일러를 찾았습니다.
그래도 가장 괜찮은게 perl2exe여서 이것을 이용해 컴파일을 해서 실행해 보니 잘되는 것도 물론 있는데..
제가 만들어 놓은 모듈 구조가 좀 복잡(이상)하니까 CGI는 잘 컴파일이 안되더라구여.

펄이 아닌 일반적인 컴파일러 처럼 깔끔하게 되는 컴파일 방법이 없을까요??

매우 궁금합니다..

hurryon의 이미지

perlcc 로 바이너리로 만들 수 있습니다. :-) 더 자세한 내용은 perl.or.kr 정도에서 찾을 수 있을 듯. :-)

byteme의 이미지

hurryon wrote:
perlcc 로 바이너리로 만들 수 있습니다. :-) 더 자세한 내용은 perl.or.kr 정도에서 찾을 수 있을 듯. :-)

작년에 해본적이 있는데 바이너리가 어마어마한 크기가 되더군요. 500줄짜리 펄코드가 약 10메가 정도로... :shock:

hurryon의 이미지

냠냠...컴파일된 펄 코드는 펄의 인터프리터가 포함되기 때문에 싸이즈가 늘어나게 됩니다. 냠냠...어쩔수 없는 문제지요. 그런데 싸이즈가 그렇게까지 커진다는건 좀.

으흠. 하지만 컴파일된 펄 코드는 인터프리터 방식으로 실행 될 때 보다 속도면에서는 향상 됩니다.

time 등으로 체크해 보세요. :-)

azalea의 이미지

궁금한것은,.

단순한 스크립트는 문제없이 컴파일이 되는데.
만약 perlcc를 이용한다고 할때

a.cgi에서

require "main_lib.pl";

위와 같이 로드해서 사용하고 있다면 제가 원하는 것은 a.cgi를 컴파일을 하면 main_lib.pl은 더이상 필요치 않을 것 같은데. 저 파일을 계속 찾습니다.

또 main_lib.pl를 컴파일 하면 a.cgi가 실행이 안되고요.

제가 잘못 생각하고 있는 건가요??

perl2exe를 사용하면 모듈까지 잘 컴파일이 되기는 합니다.
하지만 여러가지 모듈을 같이 컴파일 하니까 이것도 웹에서 CGI로 실행하니까 제대로 실행이 안되더라구요.

PAR도 써봤는데.. 마찬가지구여.. 이건 아직 자세하게 해보지 않았지만요.

결론은 개인적으로 require를 사용해 만들어 놓은 모듈까지 컴파일이 되어야 하는데 그것이 안되고 있습니다.
C 처럼 깔끔하게 되는 것이 없을까요??

옵션을 잘못 쓴 것인가요?? 정말 해결이 안되서요..
미리 감사드립니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.