Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取包含CMake中可执行文件的目录?_Cmake - Fatal编程技术网

如何获取包含CMake中可执行文件的目录?

如何获取包含CMake中可执行文件的目录?,cmake,Cmake,根据使用的生成器,可能包含也可能不包含可执行文件。使用Unix Makefiles生成器,可执行文件将直接放置到此目录中。但是,使用Xcode生成器,可执行文件被放置在一个子目录(Debug或Release)中 我正试图将一些文件复制到可执行文件旁边的目录中。这就是我正在做的,但它只在我使用make时起作用。也许有更好的办法 add_custom_command( TARGET Game POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_di

根据使用的生成器,可能包含也可能不包含可执行文件。使用Unix Makefiles生成器,可执行文件将直接放置到此目录中。但是,使用Xcode生成器,可执行文件被放置在一个子目录(Debug或Release)中

我正试图将一些文件复制到可执行文件旁边的目录中。这就是我正在做的,但它只在我使用
make
时起作用。也许有更好的办法

add_custom_command(
    TARGET Game POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_directory
        ${CMAKE_CURRENT_SOURCE_DIR}/assets
        ${CMAKE_CURRENT_BINARY_DIR}/assets
)

我找到了,但似乎没有凝固。我尝试了
CMAKE\u RUNTIME\u OUTPUT\u DIRECTORY
CMAKE\u RUNTIME\u OUTPUT\u DIRECTORY\u DEBUG
和目标属性
RUNTIME\u OUTPUT\u DIRECTORY
RUNTIME\u OUTPUT\u DIRECTORY\u DEBUG
,但它们没有设置。也许这不是我要找的。

< P>指定与可执行的目标相关的目标目录,名为<代码> NAMEXY OFEXECUTABABLE,目标< /代码>,考虑使用<代码> $< /COD>生成器表达式。
add_custom_command(
    TARGET Game POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E make_directory
        $<TARGET_FILE_DIR:name_of_executable_target>/assets
    COMMAND ${CMAKE_COMMAND} -E copy_directory
        ${CMAKE_CURRENT_SOURCE_DIR}/assets
        $<TARGET_FILE_DIR:name_of_executable_target>/assets
    )
add_custom_命令(
目标游戏后构建
COMMAND${CMAKE_COMMAND}-E make_目录
美元/资产
COMMAND${CMAKE_COMMAND}-E copy_目录
${CMAKE_CURRENT_SOURCE_DIR}/资产
美元/资产
)
有关详细信息,请参阅