Linux makefile中的强制链接库

Linux makefile中的强制链接库,linux,makefile,aix,static-linking,dynamic-linking,Linux,Makefile,Aix,Static Linking,Dynamic Linking,在Linux/Aix中,有没有一种方法可以让buildtoforce链接到特定路径中的特定库?如果库不在特定路径中,是否有方法使生成失败 以这种方式提供路径: -L/path/to/lib -lssl 似乎不会强制构建选择该特定路径中的库 这是为了弄清楚如何处理这些场景: 对于名称类似的动态库存在于多个路径中且这些路径位于LIBPATH/LD_LIBRARY_PATH中的情况,构建将根据LIBPATH/LD_LIBRARY_PATH中路径的顺序选择其他库之一 在有类似命名的静态库和动态库的地方

在Linux/Aix中,有没有一种方法可以让buildtoforce链接到特定路径中的特定库?如果库不在特定路径中,是否有方法使生成失败

以这种方式提供路径:

-L/path/to/lib -lssl
似乎不会强制构建选择该特定路径中的库

这是为了弄清楚如何处理这些场景:

  • 对于名称类似的动态库存在于多个路径中且这些路径位于LIBPATH/LD_LIBRARY_PATH中的情况,构建将根据LIBPATH/LD_LIBRARY_PATH中路径的顺序选择其他库之一
  • 在有类似命名的静态库和动态库的地方,构建似乎选择静态库而不是动态库。如果存在静态库而不存在动态库,我希望构建失败,或者选择动态库(如果两者都存在)

  • 场景1是您的链接器做什么,还是您希望它做什么?还有,你在使用什么链接器,gcc?@测试场景1和2就是它现在所做的。对于1,我想知道是否有一种方法可以强制链接到-L选项中提到的路径中的一个。对于2,我想知道是否有一种方法可以强制一个库的动态链接而不是静态链接,或者只强制链接到路径中使用-L选项的库。我刚刚分别提到了这两个选项,因为每个选项的解决方案可能不同。如果要从已知位置链接,请将
    -L/path/to/lib-lssl
    更改为
    /path/to/lib/libssl。因此在AIX上,可以使用链接器选项
    -bipath
    将库的路径存储到可执行文件中。注意:你可能想读一下:我猜你的问题不是你真正的问题。如果您有一个特定的平台,您可以创建一个对ld的调用,该调用完全符合您的要求。我想你要问的是如何在一般意义上做到这一点,以便它总是能在任何系统上选择我想要的东西。答案可能是“不”。但是您可以创建一个(shell)脚本来执行搜索,找到符合条件的库,并创建精确指定的ld命令。@Zsigmond Lőrinczy:谢谢。这就是我要找的。