gpt4 book ai didi

c++ - CMake 设置默认资源/ Assets 目录

转载 作者:行者123 更新时间:2023-12-02 10:24:29 28 4
gpt4 key购买 nike

我正在尝试使用 cmake 制作一个简单的 sfml/c++ 应用程序。

假设我需要引用一个简单的foo.png在我的代码中的某个地方。我发现只有当它位于 build 内时我才能这样做。文件夹。这是我调用 cmake .. 的文件夹命令以及我所有的 cmake 文件(除了 CMakeLists.txt 和库模块,例如 FindSFML.cmake )所在的位置。

我不希望它出现在那里...但是在一个名为 art 的文件夹中, 位于 build的父目录。我想这样做是为了保持“构建”文件夹对项目不是必需的(从某种意义上说,任何人都可以构建项目而不依赖于其中的东西)。

从我所看到的 - 看网上,也就是说 - 每个人都倾向于建议使用 file(COPY ...)命令(或类似的东西)将所有需要的 Assets /资源复制到另一个文件夹中,类似于我之前提到的 build文件夹(我知道这个......构建目录必须有一个技术术语,也许?),和利润。但是这个复制过程真的有必要吗?你不应该只指定一个不同的目录来加载你的 Assets /资源吗?

或者也许我完全错了...... cmake 有时很难理解。在此先感谢并原谅我缺乏技术知识。

最佳答案

我找到了使用符号链接(symbolic link)和 add_custom_command 的解决方案功能。

这是(假设上面描述的布局):

set (source "${CMAKE_SOURCE_DIR}/resources")
set (destination "${CMAKE_CURRENT_BINARY_DIR}/resources")
add_custom_command(
TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink ${source} ${destination}
DEPENDS ${destination}
COMMENT "symbolic link resources folder from ${source} => ${destination}"
)

我实际上是从博客中得到的...这里是良好公民文章的链接: http://qrikko.blogspot.it/2016/05/cmake-and-how-to-copy-resources-during.html

祝你今天过得愉快。

关于c++ - CMake 设置默认资源/ Assets 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636737/

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