如何从我的另一个介子项目中包含库和头文件?
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])
我有两个项目正在进行中,一个是库,另一个想使用其中的一些库。
我的目录结构是:
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])