gcc替换默认库搜索路径

时间:2015-04-23 22:39:57

标签: linux gcc autotools binutils

我想做一个"裸骨"在Linux环境中,首先我将Linux内核编译并安装到名为/ distro的目录中(在"主机"机器上)。

配置引导加载程序后,我可以启动进入这个内核,它会自动暂停,因为找不到/ sbin / init来执行。

那么我想在这个环境中运行bash,所以我尝试编译bash并且它有效。但是,bash包依赖于ncurses和readline包中的头文件和库。我还没有将这些软件包安装到/发行版中,因此编译成功的原因是它使用了主机的ncurses和readline,这是我不想要的。换句话说,我希望bash构建过程实际上失败,因为我没有将ncurses和readline安装到/ distro中。我不希望构建过程使用主机中的任何包。

对于包含路径,这很容易,因为我可以这样做:

./configure CFLAGS="-nostdinc -I/distro/usr/include -I/usr/lib/gcc/x86_64-unknown-linux-gnu/4.8.3/include"

-nostdinc选项告诉GCC不要搜索标准路径,例如/ usr / include等,然后我手动指定/ distro中的include目录,以及包含必需的头文件的必要目录GCC即使他们在主机上。

然而,对于库来说,似乎没有像-nostdinc这样的GCC选项。据我所知,有两种方法可以收集GCC使用的默认库搜索路径:

gcc -print-search-dirs | grep libraries
gcc --verbose a.c 2>&1 | grep LIBRARY_PATH

显然不一样,但我假设-print-search-dirs更完整。

就binutils ld而言,-T选项可用于使用没有任何SEARCH_DIR条目的脚本文件。

那么,替换GCC默认库搜索路径的唯一方法是破解源并编译自定义GCC?确实应该有这样的选择。

0 个答案:

没有答案