C
작업 프로젝트 에서 make
다양한 대상을 위해 구축하고 있으며 그 중 하나는 분명히 powerpc-405입니다. 툴체인이 설치되어 있지 않았기 때문에 해당 특정 대상에 대한 빌드가 실패했습니다.
make[7]: /opt/crosstool/gcc-4.2.4-glibc-2.3.6/powerpc-405-linux-gnu/bin/powerpc-405-linux-gnu-gcc: Command not found
묻다: Linux 세계에서 흔히 볼 수 있는 "소스 코드를 다운로드하고 직접 빌드"하는 패러다임에 대한 나의 이해는 매우 불안정합니다. 누군가 내가 이 작업을 수행하는 방법을 설명할 수 있습니까?오류에서 지적된 도구 모음에만 해당?
지금까지 나는 가야겠다고 결정했다/생각한다ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.2.4/.
묻다: 여기서 무엇을 다운로드해야 합니까? 포트란이나 자바 같은 것은 무시해도 괜찮을 것 같아요. 하지만 { gcc-4.2.4, gcc-core-4.2.4, gcc-g++-4.2.4, gcc-testsuite-4.2.4 } 에서 어떤 것을 다운로드해야 합니까? 모두?
묻다: 올바른 타르볼 세트를 다운로드하고 압축을 푼 후, 다음 단계는 정확히 무엇입니까? 나는 처음에는 결국 주문을 수행할 것이라는 것을 알고 있었지만 configure; make; make install
그 전후에 무엇을 해야 할지 전혀 몰랐습니다.
묻다: 언급된 오류를 발견하게 될 것입니다 glibc-2.3.6
. 이것이 그림의 어디에 들어맞나요? 위에서 언급한 것처럼, 내가 방문하고 있는 ftp 사이트에서는 단지 언급만 하고 있습니다 gcc-4.2.4
. "융합"이 무엇인지 gcc-4.2.4
, 그리고 glibc-2.3.6
빌드 오류를 해결하는 목적이 무엇인지 명확하지 않습니다.
묻다: 언급된 FTP 사이트는 "일반" 사이트처럼 보입니다 gcc
. 즉, 파일 이름으로 판단해 보면 powerpc-405
. 나했다"powerpc"와 "gcc"의 다양한 조합을 인터넷에서 검색했지만 powerpc-405
특정 gcc
.
>uname -a
Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
이 구체적인 예를 통해 Linux 사용자/개발자가 크로스 컴파일러 툴체인을 다운로드하고 컴파일할 위치를 어떻게 아는지 이해하고 싶습니다.
답변1
Linux 세계에서 흔히 볼 수 있는 "소스 코드를 다운로드하고 직접 빌드"하는 패러다임에 대한 나의 이해는 매우 불안정합니다. 오류에 언급된 툴체인에 대해 이 작업을 수행하는 방법을 설명할 수 있는 사람이 있습니까?
기본적으로 다음의 빠른 시작 및 문제 해결 섹션을 읽어보세요.http://www.kegel.com/crosstool/current/doc/crosstool-howto.html
더 일반적으로 다음을 참조하세요.소스 코드에서 프로그램을 컴파일하고 설치하는 방법소스 코드에서 컴파일하는 경우.
이것은 귀하의 질문에 대한 답변이 될 것입니다.
여기서 무엇을 다운로드해야 합니까? 포트란이나 자바 같은 것은 무시해도 괜찮을 것 같아요. 하지만 { gcc-4.2.4, gcc-core-4.2.4, gcc-g++-4.2.4, gcc-testsuite-4.2.4 } 에서 어떤 것을 다운로드해야 합니까? 모두?
Crosstool이 해당 항목을 다운로드해 줍니다!
올바른 타르볼 세트를 다운로드하고 압축을 푼 후, 다음 단계는 정확히 무엇입니까? 결국에는 구성;make;make 설치 명령을 수행하게 될 것이라는 초기 이해가 있지만 전후에 무엇을 해야 하는지는 확실하지 않습니다.
crosstool이 당신을 위해 그것을 컴파일합니다.
더 일반적으로 말하자면, 필요한 소스 코드를 다운로드하기 전에 먼저 웹사이트에서 빌드 지침을 읽어보세요.
일반적으로 상황은 ./configure && make && sudo make install
다음과 같습니다.
임시 디렉터리에 소스 코드를 추출하고 해당 디렉터리로 CD를 이동한 후 실행하면 ./configure
모든 전제 조건이 충족되는지 확인합니다. 필요한 dev(debian)/devel(redhat/suse) 패키지에 누락된 라이브러리가 언급되어 있습니다. 해당 항목을 찾아 설치한 후 다시 시도해 보세요 ./configure
.
완료되고 오류가 없으면 발행할 수 있습니다 make
.
원활하게 오류 없이 완료되어 발행할 수 있기를 바랍니다 sudo make install
.
때로는 구성 대신 autogen.sh가 표시됩니다... 웹사이트의 지침을 읽어보세요.
오류에 glibc-2.3.6이 언급되어 있음을 알 수 있습니다. 이것이 그림의 어디에 들어맞나요? 위에서 언급했듯이, 내가 사용하는 ftp 사이트에는 gcc-4.2.4만 언급되어 있습니다. 빌드 오류를 해결하기 위해 gcc-4.2.4와 glibc-2.3.6을 "병합"하는 것과 관련된 내용이 명확하지 않습니다.
glibc는 사용되는 C 라이브러리입니다. 대상 플랫폼의 c 라이브러리는 호환 가능한 버전이어야 합니다. 그렇지 않으면 문제가 발생합니다. 다시 말하지만, crosstool이 이를 처리합니다.
따라서 glibc는 DLL과 같은 ac 라이브러리이며 gcc(C 컴파일러)로 컴파일된 모든 프로그램에서 사용됩니다. gcc는 소스 코드(텍스트 파일)를 특정 플랫폼/glibc 버전 조합에 대한 바이너리, 실행 파일 및 라이브러리로 컴파일합니다.
ldd를 사용하여 특정 프로그램(예: )의 종속성을 볼 수 있습니다 ldd /usr/bin/gawk
.
언급된 FTP 사이트는 "일반" gcc처럼 보입니다. 즉, 파일명으로 보아 powerpc-405와는 관련이 없는 것으로 보입니다. 나는 올바른 길을 가고 있는 걸까, 아니면 다른 곳을 살펴봐야 하는 걸까? 나는 "powerpc"와 "gcc"의 다양한 조합을 검색했지만 powerpc-405를 유발하는 특정 gcc인 것처럼 보이는 것을 찾지 못했습니다.
gcc 소스 코드는 다양한 대상 플랫폼에 맞게 컴파일될 수 있습니다. 여기에서 플랫폼 독립적인 소스 코드를 볼 수 있으며 하나의 소스가 모두 적합합니다.