我正在使用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.0
和Visual Studio Community 2017
答案 0 :(得分:-2)
要创建静态库.lib,您必须使用STATIC关键字而不是SHARED
ADD_LIBRARY(${NAME} STATIC ${HEADERS} ${SOURCES})
看看: https://cmake.org/cmake/help/v3.0/command/add_library.html