使用 cmake 在 VisualStudio 中的文件路径中创建带有双引号和 $ 的构建事件的正确方法是什么?



在我的项目中,我试图通过Visual Studio中的后期构建事件命令将文件目录复制到另一个目录中。

我想出了这个命令行代码以在项目xcopy /Y /I /E "$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra"中使用

我想从 cmake 和我所理解的自动生成此命令 add_custom_command方法是我应该使用的...

但是当我尝试时

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND xcopy /Y /I /E "$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra")

我把它作为我在视觉工作室中的命令行选项

    setlocal
xcopy /Y /I /E $(WorkingDirectory)/abra/kadabra $(LocalDebuggerWorkingDirectory)/kadabra
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd

我做错了什么?

我最终找到了一个答案,这基本上是转义引号。我把这个"$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra")变成了"$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra")但是,我仍然得到了所有额外的本地设置和如果%错误级别%的东西,这不是我想要的。但是,它不会影响我的项目。

最新更新