我正在Meson Build中构建一个简单的项目。
尽管在Meson Build文档中有充分的how to create a dependency记录(使用UNIX/LINUX系统的隐式假设),但是不清楚如何链接到不在路径库中的任意对象。
让我们在Windows上有以下项目:
- ProjectFolder
- SrcFiles
- SrcFile1.c
- SrcFile2.c
- Lib
- MyLib1.lib
- MyLib2.lib
我想基于
SrcFile1.c
和SrcFile2.c
创建一个可执行文件,该可执行文件与预先构建的 MyLib1.lib
和MyLib2.lib
链接。正确的方法是什么?
最佳答案
好的,我在MesonBuild上找到了解决方案:How to define dependency to a library that cannot be found by pkg-config
?在Yasushi Shoji's answer上。dirs
属性的唯一问题是需要绝对路径。
因此,这是可以做什么的示意图:
# Constants
projectDir = meson.current_source_dir() # MESON_SOURCE_ROOT
buildDir = meson.current_build_dir() # MESON_BUILD_ROOT
lib1Path = join_paths(projectDir, 'Lib')
lib2Path = join_paths(projectDir, 'Lib')
objCCompiler = meson.get_compiler('c')
MyLib1 = objCCompiler.find_library('MyLib1', dirs : lib1Path)
MyLib2 = objCCompiler.find_library('MyLib1', dirs : lib1Pat2)
现在只需要定义具有适当依赖关系的目标构建即可。
关于windows - 在Windows上的Meson Build中链接现有 `.lib`文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779249/