0

我正在使用meson-build一个 c++ 项目。

我创建了一个名为的目录libs并将我需要的所有库都放在里面,我如何链接它?

4

2 回答 2

2

好的,这就是我要找的,

    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])

并感谢提示。

于 2018-10-19T18:26:42.180 回答
2

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

以下是手册中有关如何使用自己的库执行此操作的片段:

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

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

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