为什么CMAKE_LIBRARY_OUTPUT_DIRECTORY不起作用?

时间:2016-03-18 16:16:31

标签: cmake

我想在bin子目录上构建静态库,但是cmake似乎没有做我想做的事情。 这是我写的Cmake文件。

cmake_minimum_required(VERSION 3.3)
project(FancyLogger)

set(SOURCE_FILES FancyLogger.cpp)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)

add_library(FancyLogger STATIC ${SOURCE_FILES})

我创建了一个build子目录,并在此子目录中运行cmake ..make,希望在bin库上生成输出静态库。

但是输出仍然在build目录中,为什么?

这是我的文件树

===== |

| FancyLogger.cpp

|的CMakeLists.txt

| / build

| / bin中

1 个答案:

答案 0 :(得分:11)

对于静态库,您必须设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY,而不是CMAKE_LIBRARY_OUTPUT_DIRECTORY

所以你会:

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)

请参阅how do I make cmake output into a 'bin' dir?

顺便说一句,在源目录中创建子文件夹可能不是一个好主意,尤其是以自动方式。