uclinux – 与libc.so.0库链接

我正在尝试编译运行uClinux的ARM处理器的embedded式系统“hello world”C应用程序。 我正在使用这个工具链

当我用-static编译标志编译C应用程序时,应用程序工作正常。 当我删除-static标志 – 我得到一个错误: can't load library 'libc.so.6'

libc.so.6目标上不存在,放入目标设备的/ lib文件夹中libc.so.0符号链接指向libuClibc-0.9.33.2.so

如何“告诉”编译器与libc.so.0链接?

似乎你正在使用的工具链是为glibc而构建的。 但目标板安装了uClibc。
这两个库是不兼容的。
在运行时它们是不兼容的,在编译时它们是不兼容的。
你不能“告诉编译器使用不同的&不兼容的库。
您需要获得专门为uClibc而不是glibc / eglibc构建的工具链。

该网站gnuarm.com曾经有一些可靠的工具链,但该网站是没有更多。

您可以使用crosstool-NG来尝试构建自己的工具链,这比构建单个工具链包简单得多。 尝试arm-unknown-linux-uclibcgnueabi配置并根据需要对其进行自定义。

如果删除-I,则应在代码中添加“load XXX.lib”代码。 静态链接和动态链接有一些区别,你可以在Google找到。