CMAKE共享库仅创建DLL而不是关联的LIB

时间:2018-04-25 11:59:47

标签: cmake

我正在使用CMAKE为Visual Studio配置我的项目,我有以下设置:

PROJECT(Proj1)
CMAKE_MINIMUM_REQUIRED(VERSION 3.2.0)
# RPATH stuff - to avoid losing linking information
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)


# Variable for header and source files
SET(HEADERS
  api/mylib.h   
)
SET(SOURCES
  api/mylib.cpp
)

# Compile and link
ADD_LIBRARY(${NAME} SHARED ${HEADERS} ${SOURCES})
TARGET_LINK_LIBRARIES(${NAME} ${LIBS})

现在,这会创建项目,我可以编译它,但它只生成Proj1.dll文件,而不是关联lib文件。我认为应该已经生成了库和共享对象文件。

我正在使用CMAKE 3.11.0Visual Studio Community 2017

1 个答案:

答案 0 :(得分:-2)

要创建静态库.lib,您必须使用STATIC关键字而不是SHARED

ADD_LIBRARY(${NAME} STATIC ${HEADERS} ${SOURCES})

看看: https://cmake.org/cmake/help/v3.0/command/add_library.html