如何为包含的目录设置BUILD_SHARED_LIBS

时间:2014-10-10 06:33:46

标签: 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)

如果设置了BUILD_SHARED_LIBS,Google Test将仅构建为共享库(DLL)。因此,我想在此CmakeLists.txt文件中设置它。我知道如何让我自己的库共享,但我无法弄清楚如何以gtest CMakeLists.txt文件看到它的方式设置该变量。

1 个答案:

答案 0 :(得分:1)

在您的代码中

 ADD_LIBRARY(MyLib STATIC mylib.cpp) // Your code STATIC lib

将上一行改为此

 ADD_LIBRARY(MyLib SHARED mylib.cpp)  // Shared Lib is added