在CMake中,我似乎无法在../out/library中输出我的库,只有库。当我执行../out/library路径时,它告诉我它找不到库,就好像它想链接到它一样。
add_library(../out/JE3D ../source/CDeviceLayerSDL.cpp)
还有更多文件,我只是在节省空间。当我这样做时,我收到了这个错误。
链接CXX静态库lib ../ out / JE3D.a / usr / bin / ar:lib ../ out / JE3D.a:没有这样的文件或目录 make [2]: * [lib ../ out / JE3D.a]错误1 make [1]:* [CMakeFiles /../ out / JE3D.dir / all]错误2 make:*** [all]错误2
答案 0 :(得分:33)
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)
修改:如果您的目标是静态库,请检查评论