CMake程式库输出的自订目录

piah890a  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(132)

在CMake中,我似乎不能在../out/library中输出我的库,只有library。当我在../out/library路径中输出时,它告诉我它找不到库,好像它想链接到它。

add_library(../out/JE3D ../source/CDeviceLayerSDL.cpp)

有更多的文件,我只是在节省空间。当我这样做时,我得到这个错误。
链接CXX静态库库../out/JE3D.a/usr/bin/ar:库../输出/JE 3D. a:没有这样的文件或目录make[2]:***[lib../out/JE3D.a]错误1生成[1]:***[CMakeFiles/../输出/JE3D.dir/全部]错误2生成:***[全部]错误2

7hiiyaii

7hiiyaii1#

LIBRARY_OUTPUT_DIRECTORY target属性指定将在其中构建库目标文件的目录。

set_target_properties(JE3D PROPERTIES
         LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/library)

如果所有库都在一个目录中,我发现设置CMAKE_LIBRARY_OUTPUT_DIRECTORY变量会更方便,该变量用于在创建目标时初始化LIBRARY_OUTPUT_DIRECTORY属性。

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/out/library)

**编辑:**如果您的目标是静态库,请检查注解

jdg4fx2g

jdg4fx2g2#

我的2分钱,我试图在Visual Studio中更改一个静态库(.lib)的输出目录。我发现唯一对我有效的是:

set_target_propertes(${PROJECT_NAME} PROPERTIES
    ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/myPath"
)

这使得库的输出路径

${CMAKE_BINARY_DIR}/myPath/Debug

我假设构建一个发布配置会相应地改变路径。

set(ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/myPath")

这适用于CMake 3.19.5版。

相关问题