Cmake。选择lib.so所在文件夹

问题描述 投票:0回答:1

如何创建一个lib文件夹并在其中包含lib.so? 这是 lib 文件夹中我的 cmakelists 文件

project(Library)
add_library(Library SHARED lib.cpp)
target_include_directories(Library PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

在主 cmakelists 文件中我写:

target_link_libraries(MyProject Library)
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

但它不起作用。该文件是在运行 make 的文件夹内创建的。

cmake
1个回答
0
投票

LIBRARY_OUTPUT_DIRECTORY是一个目标属性,而不是您设置的变量。而不是

set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

你需要使用

set_target_properties(Library
  PROPERTIES
    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib"
)

但是,如果您希望将项目构建的所有库放入该文件夹中,您也可以使用

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/lib")

位于顶级 CMakeLists.txt 顶部的某个位置,因为此变量为设置后定义的所有目标设置

LIBRARY_OUTPUT_DIRECTORY
目标属性的默认值。

© www.soinside.com 2019 - 2024. All rights reserved.