如何为包含目录设置BUILD_SHARED_LIBS

Gra*_*rak 5 cmake

我有一个非常基本的 CMake 项目,它使用 Google Test。我想将其构建为 dll,并且 gtest 中的 CMakeLists.txt 文件表明BUILD_SHARED_LIBS需要进行设置才能将 gtest 构建为共享库。

我的问题是我不知道如何设置BUILD_SHARED_LIBS才能显示它。如果我使用 cmake-gui 在缓存中设置值,那么我确实会看到生成的构建尝试创建 dll。

下面是我的 CMakeLists.txt。我将不胜感激任何有关如何设置 BUILD_SHARED_LIBS 的建议。

CMAKE_MINIMUM_REQUIRED(VERSION 3.0 FATAL_ERROR)
PROJECT(MyProj)
SET(BUILD_SHARED_LIBS ON)
ADD_EXECUTABLE(MyProj main.cpp)
ADD_LIBRARY(MyLib STATIC mylib.cpp)
TARGET_LINK_LIBRARIES(MyProj MyLib)
ADD_SUBDIRECTORY(gtest-1.7.0)
Run Code Online (Sandbox Code Playgroud)

如果设置了 BUILD_SHARED_LIBS,Google Test 只会构建为共享库 (DLL)。因此我想在这个 CmakeLists.txt 文件中设置它。我知道如何共享我自己的库,但我不知道如何以 gtest CMakeLists.txt 文件看到的方式设置该变量。

Dig*_*til 1

在你的代码中

 ADD_LIBRARY(MyLib STATIC mylib.cpp) // Your code STATIC lib
Run Code Online (Sandbox Code Playgroud)

将上面的行更改为此

 ADD_LIBRARY(MyLib SHARED mylib.cpp)  // Shared Lib is added
Run Code Online (Sandbox Code Playgroud)