【发布时间】:2015-05-13 07:38:18
【问题描述】:
我有一个使用 CMake 的跨平台项目。我正在做源外构建,所以基本上我有一个包含 CMakeLists.txt 的源目录“src”,然后我有一个“src/build”目录,用于生成源外构建。
但是,当使用 Visual Studio (2013) 时,它不会将可执行文件放在构建目录中,而是将其放在“src/build/Debug”中(取决于所选配置)。我认为这在 VS 中被称为“$(OutDir)”。如何引用 CMakeLists.txt 中的(运行时)输出目录,以便将 DLL 和着色器复制到可执行文件所在的位置?
编辑:建议的重复答案对我来说似乎不正确。在那个答案中,你只是强制输出目录是静态的,如果你使用像 Visual Studio 这样的多配置构建系统,这听起来是错误的。
【问题讨论】:
-
你可以使用 $
-
$
似乎不起作用。只需获取“file COPY cannot copy file "C:\blaa\src\file" 到 "C:\blaa\src\build\$ \file" -
抱歉,我看到 $
已被弃用,取而代之的是 $ 。虽然它是一个运行时变量。它在配置/生成时不可用。通常,如果您在这些阶段需要此值,则需要编写一个执行安装/复制并调用它的 cmake 脚本。 cmake.org/cmake/help/v3.0/manual/…