gpt4 book ai didi

c++ - 在 gcc 和 g++ include 和 lib 路径中指定顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:31 26 4
gpt4 key购买 nike

我有一个库的多个版本,所有版本都具有相同的名称(boost 库),每个版本都安装在自己的目录中。我知道如何指示编译器和链接器在某些目录中搜索头文件和库(-I-L)。 I am also aware如何将实际的库文件传递给链接器。

我的问题是如何在编译器和链接器的搜索路径中指定优先级,以便它在搜索文件夹 B 之前搜索文件夹 A 并获取 A 的库版本而不是 B 的。我对所有符合条件的目录之间的顺序感兴趣,即默认的 gccg++ 目录,以及在 -I 之后指定的目录>-L

我的发行版是 Ubuntu 14.04,我使用 g++ 4.86

最佳答案

GCC 将按照它们所在的从左到右的顺序搜索您的 -I 目录出现在你的命令行中,它会在之前搜索你所有的 -I 目录默认的 #include 目录。这是 the documentation .

GCC 调用系统链接器,ld , 去表演链式。 GCC 的 -L 选项及其 -l 选项的出现被传递保留顺序的链接器。

链接器将按照从左到右的顺序搜索您的 -L 目录,其中它们出现在命令行中,它将搜索您所有的 -L 目录在默认链接目录之前。所有 -L 选项,按照指定的顺序,适用于所有 -l 选项,无论 -L-l 选项如何混合在命令行中。例如

-La -lfoo -Lb -lbar

等同于:

-La -Lb -lfoo -lbar
-lfoo -La -Lb -lbar
-lfoo -lbar -La -Lb

这里是 the documentation

关于c++ - 在 gcc 和 g++ include 和 lib 路径中指定顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41437648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com