2013-07-17 3 views
1

JNI으로 원시 코드를 사용하는 Java 응용 프로그램을 개발 중이므로 C shared library을 Linux Redhat에서 Eclipse with the CDT plugin을 사용하여 개발했습니다. Java 응용 프로그램을 시작하고 아무런 문제없이 원시 메소드를 호출 할 수 있기 때문에 모든 것이 잘 작동합니다. 하지만 제 문제는 모든 플랫폼에서 내 코드를 컴파일해야한다는 것입니다. (Linux, Windows, x86/x64). libXXX.so 파일을 얻는 것도 문제가 아니지만 Windows에서 실행하려면 .dll이 필요합니다. 단지 내 코드를 컴파일 할 수 없다는 것만 제외하면 이클립스를 사용하여 Linux에서 로컬로 할 수있는 방법이 필요합니다. 그래서 크로스 컴파일을 사용하여 이클립스로 로컬로 할 수있는 간단한 솔루션을 찾고있다.Eclipse를 사용하는 C 응용 프로그램 용 교차 컴파일

몇 가지 조사를 해봤지만 특정 플랫폼에서 컴파일 할 때마다 실제 튜토리얼을 통해 설명하는 방법을 찾을 수 없습니다. 그래서 누군가가 이것으로 나를 도울 수 있다면 그것은 위대 할 것입니다.

내 구성은 다음과 같습니다 리눅스 레드햇, 이클립스 주노, CDT 플러그인 8.1

+1

어쨌든 대상 플랫폼에서 테스트 및 디버깅해야 할 필요가 있습니다. 그렇다면 크로스 컴파일을 귀찮게하는 이유는 무엇입니까? 컴파일러를 실행할 수없는 임베디드 시스템을 목표로하는 것과는 다릅니다. –

+0

네이티브 코드가 약간 있고 다른 컴퓨터에서 여러 컴파일 작업을 피하고 싶을 때 유용합니다 (물론 컴파일러를 설치할 수있는 경우). 그리고 약간의 수정이 필요한 경우, 코드를 변환하고, Windows 컴퓨터를 찾고, 코드를 컴파일하고, DLL을 가져 와서 프로젝트에 넣고, 마지막으로 응용 프로그램을 테스트하여 잊어 버렸음을 발견하는 USB 스틱이 필요합니다 printf와 그것을 모두 다시해야합니다. 그래서 동시에 같은 컴퓨터에있는 리눅스와 윈도우 모두를 컴파일하는 것이 가능하다면, 그것은 아주 좋을 것입니다. – AwaX

+0

같은 컴퓨터에서 컴파일 할 수 있으며, 가상 머신을 설정하면됩니다. –

답변

1

당신은 리눅스가 필요합니다 -> 윈도우 크로스 컴파일러. MinGW 도구는 작업을 수행하지만 마지막으로 확인한 바, Windows (즉, 크로스 컴파일러가 아님)에 실행하기 위해 이진 다운로드 만 제공합니다. 자신의 here을 구축하기위한 몇 가지 (오래된) 안내가 있습니다.

컴파일러는 아마도 정확히 원하는 것일 수 있지만 무료는 아닙니다 (무료 평가판이 있습니다). 기본적으로 MinGW 도구를 전문적으로 빌드 한 것으로, 자체 Eclipse가 제공되므로 해당 부서에서 필요한 작업을 할 필요가 없습니다.

빠른 Google도 these tools on sourceforge과 함께 제공되지만 시도하지는 않았습니다.

+0

나는 리눅스에서 실행되는 MinGW를 발견했다. 그것은 .so 파일을 생성하기 때문에 제대로 작동하는 것으로 보이지만 .dll 파일을 원한다는 것을 알리기 위해 Eclipse를 구성하는 방법을 모르겠습니다. – AwaX

+0

DLL 파일을 생성하는 것은 간단하지 않습니다. Eclipse에서 자동으로 수행하는 방법을 알고 있는지 여부는 알 수 없습니다. Visual Studio조차도 심볼 내보내기가 포함 된 특수 파일을 작성해야합니다 (또는 몇 년 전에 시도 했었습니다). – ams

관련 문제