使用 CMake 生成平面缓冲区 windows 共享库

Generate flatbuffers windows shared lib with CMake

我正在尝试使用 CMake 生成 Google 平面缓冲区 (https://github.com/google/flatbuffers) 的 Windows 共享库 (dll)。 我使用了下面的 cmake 命令,但它总是在我构建它时生成一个静态库 (*.lib)。

cmake .. -G "Visual Studio 16 2019" -DBUILD_SHARED_LIBS=ON

我也尝试了选项 CMAKE_IMPORT_LIBRARY_SUFFIXCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 使用 CMake。不幸的是它总是生成一个 *.lib

我需要做什么来生成*.dll?

在Flatbuffers CMake代码中,有一个CMake选项FLATBUFFERS_BUILD_SHAREDLIB here:

option(FLATBUFFERS_BUILD_SHAREDLIB
       "Enable the build of the flatbuffers shared library"
       OFF)

您可以在调用 CMake 以启用 shared 库构建时设置此选项:

cmake .. -G "Visual Studio 16 2019" -DFLATBUFFERS_BUILD_SHAREDLIB=ON

为了将来参考,您可以使用以下命令列出所有缓存的 CMake 变量:

cmake -LH

这将显示您可以为构建配置的所有已定义 FLATBUFFERS_* 选项。