2010-04-28 2 views
0

이전 버전의 SuSE Linux가 실행되는 오래된 하드웨어가 있습니다. 이제 우분투 9.10을 실행하는이 멋진 개발 기계가 있습니다. Python 2.6.x로 작성된 C 애플리케이션을 컴파일하는 데 사용하는 도구 중 일부는 이전 SuSe 상자에서 사용할 수 없습니다. 그래서 ... 내 dev에 상자에 그 오래된 컴퓨터를 컴파일 할 수 있습니까?우분투 9.10에서 구버전의 리눅스 배포판 용 gcc로 컴파일 할 수 있습니까?

내가 마음에 다음 단계를 가지고 있지만,이 퀘스트로 떨어져 감행하기 전에 검사를 건너 싶습니다 : 1은 정적/공유 libs와 내 응용 프로그램의 요구를 알아보고 찾아/그 2의 대상 버전을 구축 할 수 있습니다. 적절한 헤더 파일도 찾으십시오 3. gcc에 올바른 플래그를 보내서 대상 헤더와 라이브러리를 사용하십시오 4. 올바른 아키텍처 (i386/i686)를 사용하려면 gcc에 올바른 플래그를 제공하거나 크로스 컴파일이 필요합니까? 툴체인. 5. 컴파일, 업로드 및 즐기기 ;-)

나는 avr-gcc와 cc65를 정기적으로 사용하며 둘 다 크로스 컴파일됩니다. 나는 gumstix와 같은 것을 개발하기 위해 coss 컴파일러를 설정 했으므로 이전/다른 Linux 배포판에서도 동일하게 수행 할 수 있어야합니다.

C

+0

예, 헤더 및 라이브러리가 가장 큰 고통 (고통 인 경우)입니다. gcc의 새 버전은 glibc의 특정 버전의 기능이 있다고 가정합니다. 이 문제를 해결할 수있는 방법이 있습니다. avr-gcc를 사용한다면 아마 너무 많은 문제없이이 작업을 수행 할 수있을 것입니다. x86-64와 x86-32 사이를 이동할 경우 일부 binutils의 교차 버전이 필요할 수 있습니다. – nategoose

답변

2

나는이 잡고있다 접근 할 방법 당신의 oldmachine:/usr/liboldmachine:/usr/include 그래서 당신은 예를 들어,이 newmachine:/oldmachinecompiler/usr/{lib|include}는이 정말 당신의 프로그램 (libc에 포함) 라이브러리 요구 사항이 oldmachine와 호환되는지 확인하는 유일한 방법입니다 newmachine:/oldmachinecompiler/

--sysroot 설정 크로스 컴파일러를 구축 할 수 있습니다.