在一个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/。
问: 我应该从这里下载什么?我想我可以放心地忽略 fortran 和 java 之类的东西。但是从 { gcc-4.2.4, gcc-core-4.2.4, gcc-g++-4.2.4, gcc-testsuite-4.2.4 } 中,我应该下载哪个?全部?
问:下载+解压正确的 tarball 集后,下一步到底是什么?我初步了解最终我会执行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
更一般地,请参见如何从源代码编译和安装程序用于从源代码编译。
这应该可以回答您的一些问题。
我应该从这里下载什么?我想我可以放心地忽略 fortran 和 java 之类的东西。但是从 { gcc-4.2.4, gcc-core-4.2.4, gcc-g++-4.2.4, gcc-testsuite-4.2.4 } 中,我应该下载哪个?全部?
请注意,crosstool 会为您下载它们!
下载+解压正确的 tarball 集后,下一步到底是什么?我初步了解最终我将进行配置;制作; make install 咒语,但我不清楚之前和之后需要做什么。
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是一个ac库,就像一个DLL,所有用gcc(C编译器)编译的程序都使用它。 gcc 将给定平台/glibc 版本组合的源代码(文本文件)编译为二进制文件、可执行文件和库。
您可以使用 ldd 查看给定程序的依赖关系,例如ldd /usr/bin/gawk
。
所提到的 ftp 站点看起来像一个“通用”gcc。即从文件名来看,我不认为与 powerpc-405 有任何关系。我是否走在正确的道路上,或者我应该寻找其他地方?我在 google 上搜索了“powerpc”和“gcc”的各种组合,但没有找到任何看起来像是导致 powerpc-405 特定的 gcc 的东西。
gcc 源代码可以针对多种目标平台进行编译。在这里,您可以看到源代码,与平台无关,一种源适合所有情况。