我有一个非常基本的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文件看到它的方式设置该变量。
答案 0 :(得分:1)
在您的代码中
ADD_LIBRARY(MyLib STATIC mylib.cpp) // Your code STATIC lib
将上一行改为此
ADD_LIBRARY(MyLib SHARED mylib.cpp) // Shared Lib is added