我正在尝试使用musl工具链编译各种程序,例如 MariaDB。也就是说,编译完成后,我不希望对 glibc 或 GNU 的链接器有任何依赖。
到目前为止,我一直在使用 musl 的 GCC 包装器musl-gcc
来编译东西。但是,对于像 MariaDB 这样的大型程序,我很难获得所有必要的库和头文件,并且符号链接或为编译添加环境变量并没有真正的帮助。
我在这个 GitHub repo 上看到提到构建一个针对 musl libc 的交叉编译器,并带有其他文档和代码。从交叉编译器的文档中:
这为您提供了一个完整的、可重定位的 musl 目标工具链,具有 C++ 支持及其自己的库路径,您可以将第三方库安装到其中。
听起来这对我有帮助,但我不确定这与 musl 的 GCC 包装器有何不同,据我所知,它只是改变了 GCC 查找库和头文件等的位置。
最终,我不确定这个交叉编译器与 GCC 包装器有多大不同,以及它是否对我有用。当我可以符号链接到现有库并使用 GCC 包装器时,为什么我需要自己的库路径来安装第三方库?交叉编译器是我应该编译的方式吗,尤其是更大的代码库?