我想在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中
答案 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?
顺便说一句,在源目录中创建子文件夹可能不是一个好主意,尤其是以自动方式。