如何从我的另一个介子项目中包含库和头文件?

How to include library and header files from another one of my Meson projects?

我有两个项目正在进行中,一个是库,另一个想使用其中的一些库。

我的目录结构是:

Work/
      ProjectA/ 
               src/
                   include/
               build/

      ProjectB/ 
               src/
               build/

假设两个项目都是用 meson-build 构建的,projectA 是库。

1- 如何让 ProjectB 看到 ProjectA 的包含文件? 2- 如何 link projectA 的 .lib 文件? (目前在构建文件夹中)

当我尝试使用相对路径创建依赖项时,找不到获取 .lib 文件的东西? 我只能使用以下方法获取头文件:

a_dep = declare_dependency(include_directories : include_directories('../../ProjectA/src/include'))

注意我正在使用 windows,但也会使用 linux。

您应该将其中一个项目设为子项目并从中提取依赖项:

硬编码本地项目的路径没有意义,这被概念打破了。

从另一个项目访问包含的一种方法是使用 subprojects() and get_variable():

项目 B:

project('Project B', ...) 
.
.
.
projectB_inc = [ 'inc', 'src/inc' ]
inc_dirs = include_directories(projectB_inc)
.
.
.
projecB_lib = static_library('projectB',...

从项目 A 访问项目 B:

project('Project A', ...) 
.
.
.
pB = subproject('projectB')
pB_inc_dirs = rp.get_variable('inc_dirs')
.
.
.
# Use the include dirs: 

pA_inc_dirs = ... 

exe = executable(
  'projectA_exe',
  'main.c',
  ...
  include_directories:  [pA_inc_dirs, pB_inc_dirs])