windows - 在Windows上的Meson Build中链接现有 `.lib`文件

标签 windows build meson-build

我正在Meson Build中构建一个简单的项目。
尽管在Meson Build文档中有充分的how to create a dependency记录(使用UNIX/LINUX系统的隐式假设),但是不清楚如何链接到不在路径库中的任意对象。

让我们在Windows上有以下项目:

- ProjectFolder
    -   SrcFiles
        -   SrcFile1.c
        -   SrcFile2.c
    -   Lib
        -   MyLib1.lib
        -   MyLib2.lib

我想基于SrcFile1.cSrcFile2.c创建一个可执行文件,该可执行文件与预先构建的 MyLib1.libMyLib2.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/

相关文章:

c++ - 如何正确使用生成的 protobuf 源?

build - 在介子中,您可以测试项目中是否存在目录吗?

windows - 确定我的代码当前运行在哪个物理处理器上

windows - 从 Windows 访问 Docker 容器文件

c# - 如何获取系统的玻璃颜色?

c# - 消失的系统托盘图标

android-studio - 无法加载类 'groovy.lang.GroovyObject'

c# - 构建成功但发布失败——此版本的Microsoft.AspNetCore.All只兼容netcoreapp2.2目标框架

build - 制作在 Gradle 中返回 bool 值的自定义任务

vala - Flatpak bundle libmysqlclient