gpt4 book ai didi

c++ - 在 cpack 输出中包含外部库

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:49 24 4
gpt4 key购买 nike

我目前正在开发一个 cmake 项目,该项目使用通过 find_package 函数导入的外部库。我的问题围绕着 cpack 以及我应该如何将找到的包添加到 cpack 输出中。例如,如果我使用这个

find_package(OpenGL REQUIRED)

add_executable(Example_App MACOSX_BUNDLE src/main.cpp)

target_include_directories(Example_App SYSTEM PUBLIC ${OPENGL_INCLUDE_DIR})
target_link_libraries(Example_App PUBLIC ${OPENGL_LIBRARIES})

install(TARGETS Example_App
BUNDLE DESTINATION "."
RUNTIME DESTINATION bin)

如果我然后运行 ​​cmake .. 然后运行 ​​make 和 make package 我从 cpack 的输出(如果需要我也可以包括我的 cpack 代码的示例)然后是。示例App-linux.tar.bz2

- bin
-- Example_App
- Share
-- Resource files

而不是像这样的东西:

- bin
-- Example_App
- Lib
-- OpenGL.a
- Share
-- Resource files

任何帮助将不胜感激!

最佳答案

您必须为外部项目库显式添加安装规则。

例如:

install(FILES ${OPENGL_LIBRARIES}
RUNTIME DESTINATION bin COMPONENT RuntimeLibraries
LIBRARY DESTINATION bin COMPONENT RuntimeLibraries
ARCHIVE DESTINATION Lib COMPONENT Development
)

或者您可以使用特定的库引用,如 ${OPENGL_gl_LIBRARY} 而不是 ${OPENGL_LIBRARIES}。参见 Modules/FindOpenGL.cmake了解更多详情。

关于c++ - 在 cpack 输出中包含外部库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com