繁体   English   中英

如何链接目录中的所有库?

[英]How to link with all libraries inside a directory?

我正在为C ++项目使用meson-build

我创建了一个名为libs的目录,并将所需的所有库放入其中,如何与之链接?

在阅读介子的依赖手册之后 ,我认为它没有这样的选择。 您应该为每个要链接的库指定一个依赖关系。

以下是手册中的片段,说明如何使用自己的库:

my_inc = include_directories(...)
my_lib = static_library(...)
my_dep = declare_dependency(link_with : my_lib, include_directories : my_inc)

但是这是最好的,因为您应该非常小心地控制链接库,为什么?

  1. 即使不是所有符号都已解析,链接也可能成功,并且该应用程序只会在运行时崩溃。
  2. 如果您有多个使用相同符号的库,则需要控制链接顺序
  3. 您不想链接不需要的库,因为它们可能会将恶意代码插入到您的应用程序中(例如,您的同事可以在该文件夹中植入恶意库,您永远不会知道,但是在您的应用程序中有后门)

好的,这就是我想要的,

    cmplr = meson.get_compiler('cpp')
    mylib1 = cmplr.find_library('lib_name1', dir : 'path_to_directory')
    mylib2 = cmplr.find_library('lib_name2', dir : 'path_to_directory')
    ....
    executable(.... , dependencies : [mylib1, mylib2])

并感谢您的提示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM