TL; DR :在构建新代码之前,如何让CLion终止任何正在运行的代码版本?
我开始玩CLion for C ++。我注意到我经常忘记在再次尝试编译之前停止最后一次迭代,这导致“权限被拒绝”错误 - 当我第一次遇到这个时,我花了将近半个小时的权限设置,然后才意识到它是因为旧版本仍在运行,因此无法替换为新的可执行文件。
据我所知,如果没有嵌入Batch(因为我在Windows上)脚本,就无法在CMake中执行此操作。我想避免这种情况,因为对于......而不是那么多奖励,它会有很多不必要的复杂性。
简而言之,CLion中是否有选项或CMake中的某个选项会在运行新的迭代时停止上一次迭代?
答案 0 :(得分:3)
是的。只需按ctrl + F2
或转到Run > Stop
即可终止上一次迭代,以防它继续运行。
或者,您可以设置为仅运行单个实例。这样,在运行新实例之前,将始终终止先前的实例。要启用此功能,请转到Run | Edit Configurations
并选择Single Instance Only
。
答案 1 :(得分:0)
据我所知,默认情况下这是不可能的。 我发现的一个解决方案是创建一个包含以下内容的批处理文件:
@echo on
tasklist /FI "IMAGENAME eq %1" 2>NUL |find /I "%1">NUL
if "%ERRORLEVEL%"=="0" taskkill /F /im %1
(第二行检查流程是否正在运行 - 在此处找到:How to check if a process is running via a batch script)
编辑构建配置以使CLion调用批处理文件并在每次构建之前将processname传递给它。
这是它的工作原理:
$ProjectName$.exe
写入"参数:"字段锂>
现在它应该尝试在每次构建之前终止正在运行的进程。