3

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

我的目录结构是:

Work/
      ProjectA/ 
               src/
                   include/
               build/

      ProjectB/ 
               src/
               build/

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

1- 如何让 ProjectB 看到 ProjectA 的包含文件?2-如何链接projectA的.lib文件?(当前位于 build 文件夹中)

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

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

注意我使用的是windows,但也将使用linux。

4

2 回答 2

1

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

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

于 2017-06-01T15:36:00.847 回答
0

从另一个项目访问包含的一种方法是使用subprojects()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])  
于 2022-02-09T09:20:21.480 回答