2009-09-12 8 views
3

저는 Java, Ruby, Python 및 기타 고급/동적 언어에 대한 강력한 배경을 가진 프로그래머입니다. 나는 리눅스 실행 파일 (64 비트 및 32 비트 OS에도 해당)을 코딩 할 필요가있는 문제에 직면하고있다. 그리고이 언어들 중 어느 것도이 작업에 적합하지 않은 것으로 보인다. 왜냐하면 결국 런타임을 배포해야하기 때문이다.독립 실행 형 리눅스 생성

정말 괜찮은 C 코드를 작성할 수 없으므로 소켓 통신을 지원하는 우수한 고급 언어에 대한 조언을 요청하고 C 중간 코드 또는 독립 실행 형 Linux 실행 파일을 생성하는 프로세스 생성을 요청합니다.

+6

왜 Linux 사용자를 목표로하지만 Linux 사용자가 Linux를 사용할 수 있는지 신뢰하지 않는 이유는 무엇입니까?누군가 리눅스를 사용하고 있다면, 자바, 파이썬, 루비를 모두 설치하거나 쉽게 설치할 수있는 가능성이 매우 높습니다. –

+0

@Chris : 실제로 그의 응용 프로그램이 무엇을 할 것인가에 달려 있습니다. 서버 환경에서 사용될 가능성이있는 경우 위의 내용 중 어느 것도 사용할 수없는 가능성이 있습니다. 많은 시스템 관리자는 절대적으로 필요하지 않은 서버에는 아무 것도 설치하지 않습니다. 보안 위험에 대한 노출을 최소화하는 현명한 관리 스타일입니다. –

+1

리눅스는 런타임에 의존하는 패키지 (.deb, .rpm)를 만들고 패키지 관리자가 나머지를 처리하도록합니다. – starblue

답변

5

일부 선택 :

  1. 가 C 또는 C++을 알아보세요. 얼마나 힘들 수 있습니까? 재미있을 수도 있습니다.
  2. gcj을 사용하십시오. 이것은 GNU Java 컴파일러입니다.
  3. 사용 RubyScript2Exe
+0

Chris가 도착하기 전에 :-) 예, 항목 3은 패키지 작성자입니다. 실제로 Ruby 프로그램을 컴파일하지 않습니다. 그러나 문제를 해결할 수도 있습니다. – DigitalRoss

+0

정말 무서운가요? 나는 벌써 널지지했다! –

6

파이썬의 경우 Freeze을 사용할 수 있습니다. 위키에서

:

프리즈는 "순수 파이썬"유틸리티입니다 파이썬 제공됩니다. Freeze 을 사용하여 Unix 시스템의 실행 파일을 컴파일 할 수 있습니다.

파이썬을 쓰고 싶지만 클라이언트에 Python 이 설치되어 있는지 잘 모르는 경우 이것을 사용하십시오!

+0

레코드의 경우 Freeze는 기본적으로 Python 인터프리터를 프로그램의 Python 바이트 코드로 배포한다는 점에 유의해야합니다. –

3

는 어두운면에 기꺼이 경우, 실험적인 "컴파일러"가 있습니다 (즉, C로 변환) 펄합니다. 나는 당신이 그것에 대해 어떻게 느끼는지 모르겠다. 많은 파이썬 광신자 (모든 파이썬 사용자가 광신적 인 것은 아니다)는 정당한 이유가 없다는 열정으로 그것을 싫어하는 것처럼 보이지만 사람들은 그들의 종교적 의견을 가져야한다고 생각한다.

대부분의 "상위 레벨"언어의 경우, 실제 컴파일러는 기본적으로 프로그램과 런타임을 묶는 것입니다. 정말로 원하지 않는다면 C (심지어 C는 표준 라이브러리가 필요하다. 사용 가능한 시스템이 없다. 이 이미있다.) 또는 C++ (이전 참조).

하스켈은 기계어 코드로 직접 컴파일해야하지만 사용자의 취향에 맞는 라이브러리가 충분하지 않을 수 있으며 배우려고 할 때 두뇌에 상처를 줄 수 있습니다. 아니면 얼랑 (Erlang), 병행 성이 심하게 필요하다면, 구체적으로 프로세스 스폰 또는 동시성에 대한 일반적으로 강력한 지원인지는 모르지만 말입니다. 거기에는 다양한 Lisp 방언을위한 컴파일러가 있어야하지만, 다시 한번 나는 언어/라이브러리가 당신의 작업에 얼마나 잘 맞는지 알지 못한다.

+0

FWIW, Haskell은 컴파일 된 실행 파일에 런타임을 포함합니다. GHC 6.8.2에서'main = return()'만 컴파일 된 스크립트는 내 컴퓨터에서 353107 바이트의 실행 파일을 생성합니다. –

+0

대부분의 언어가이 작업을 수행합니다. 유일한 차이점은 C 표준 라이브러리가 매우 가볍다는 점입니다. –

0

요즘 대부분의 UNIX 시스템에는 Perl이 기본적으로 설치되어 있으므로 Perl을 고려하고 싶을 수 있습니다. 그것은 더 높은 수준의 언어 IMHO는 아니지만 C를 작성하는 것보다 조금 쉽습니다. Accelerated C++의 복사본을 가져 와서 C++로 작성합니다. 이와 같은 작업에 C++을 배우는 것은 아마도 가치있는 것 이상일 것입니다. 일단 Boost와 STL로 프로그래밍을 둘러 본다면, 더 높은 수준의 언어처럼 느껴질 수 있습니다.

관련 문제