<legend id='m6xq7'><style id='m6xq7'><dir id='m6xq7'><q id='m6xq7'></q></dir></style></legend>

        <i id='m6xq7'><tr id='m6xq7'><dt id='m6xq7'><q id='m6xq7'><span id='m6xq7'><b id='m6xq7'><form id='m6xq7'><ins id='m6xq7'></ins><ul id='m6xq7'></ul><sub id='m6xq7'></sub></form><legend id='m6xq7'></legend><bdo id='m6xq7'><pre id='m6xq7'><center id='m6xq7'></center></pre></bdo></b><th id='m6xq7'></th></span></q></dt></tr></i><div id='m6xq7'><tfoot id='m6xq7'></tfoot><dl id='m6xq7'><fieldset id='m6xq7'></fieldset></dl></div>
        <tfoot id='m6xq7'></tfoot>

        <small id='m6xq7'></small><noframes id='m6xq7'>

          <bdo id='m6xq7'></bdo><ul id='m6xq7'></ul>

        使用CMake制作后如何将目录的内容复制到构建目录中?

        时间:2023-08-28
        <tfoot id='Odq5g'></tfoot>
            <tbody id='Odq5g'></tbody>

          <i id='Odq5g'><tr id='Odq5g'><dt id='Odq5g'><q id='Odq5g'><span id='Odq5g'><b id='Odq5g'><form id='Odq5g'><ins id='Odq5g'></ins><ul id='Odq5g'></ul><sub id='Odq5g'></sub></form><legend id='Odq5g'></legend><bdo id='Odq5g'><pre id='Odq5g'><center id='Odq5g'></center></pre></bdo></b><th id='Odq5g'></th></span></q></dt></tr></i><div id='Odq5g'><tfoot id='Odq5g'></tfoot><dl id='Odq5g'><fieldset id='Odq5g'></fieldset></dl></div>

          • <small id='Odq5g'></small><noframes id='Odq5g'>

          • <legend id='Odq5g'><style id='Odq5g'><dir id='Odq5g'><q id='Odq5g'></q></dir></style></legend>
              <bdo id='Odq5g'></bdo><ul id='Odq5g'></ul>
                  本文介绍了使用CMake制作后如何将目录的内容复制到构建目录中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我在源文件旁边的 config 目录中有一些配置文件(xml、ini、...).每次制作项目时,如何将config目录下的所有文件都复制到build目录下(可执行文件旁边)?

                  I've got some config files (xml, ini, ...) in the config directory next to the source files. How can I copy all the files in the config directory into the build directory (next to the executable file) each time I make the project?

                  推荐答案

                  您可以使用 add_custom_command.

                  You can use add_custom_command.

                  假设您的目标名为 MyTarget,那么您可以这样做:

                  Say your target is called MyTarget, then you can do this:

                  add_custom_command(TARGET MyTarget PRE_BUILD
                                     COMMAND ${CMAKE_COMMAND} -E copy_directory
                                         ${CMAKE_SOURCE_DIR}/config/ $<TARGET_FILE_DIR:MyTarget>)
                  

                  每次构建 MyTarget 时都会执行此操作,并将/config"的内容复制到目标 exe/lib 将结束的目录中.

                  This executes every time you build MyTarget and copies the contents of "/config" into the directory where the target exe/lib will end up.

                  正如 Mark Lakata 在下面的评论中指出的那样,将 PRE_BUILD 替换为 <add_custom_command 中的 code>POST_BUILD 确保只有在构建成功时才会进行复制.

                  As Mark Lakata points out in a comment below, replacing PRE_BUILD with POST_BUILD in the add_custom_command ensures that copying will only happen if the build succeeds.

                  • ${CMAKE_COMMAND} 是 CMake 的路径
                  • -E 使 CMake 运行命令而不是构建
                  • copy_directory 是一个 命令行工具
                  • config 是目录(位于项目根目录下),其内容将被复制到构建目标中
                  • $ 是一个生成器表达式,在 add_custom_command 文档中进行了描述.
                  • ${CMAKE_COMMAND} is the path to CMake
                  • -E makes CMake run commands instead of building
                  • copy_directory is a Command-Line Tool
                  • config is the directory (that falls under the root of the project) who's contents will be copied into the build target
                  • $<TARGET_FILE_DIR:MyTarget> is a generator expression, described in the add_custom_command documentation.

                  这篇关于使用CMake制作后如何将目录的内容复制到构建目录中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:我如何使用 CMake? 下一篇:在 Windows 上的 Cmake 中为调试和发布构建链接不同的库?

                  相关文章

                    <tfoot id='225iG'></tfoot>

                    <small id='225iG'></small><noframes id='225iG'>

                      <legend id='225iG'><style id='225iG'><dir id='225iG'><q id='225iG'></q></dir></style></legend>
                        <bdo id='225iG'></bdo><ul id='225iG'></ul>
                      <i id='225iG'><tr id='225iG'><dt id='225iG'><q id='225iG'><span id='225iG'><b id='225iG'><form id='225iG'><ins id='225iG'></ins><ul id='225iG'></ul><sub id='225iG'></sub></form><legend id='225iG'></legend><bdo id='225iG'><pre id='225iG'><center id='225iG'></center></pre></bdo></b><th id='225iG'></th></span></q></dt></tr></i><div id='225iG'><tfoot id='225iG'></tfoot><dl id='225iG'><fieldset id='225iG'></fieldset></dl></div>