如何在非root启动的CLion中以sudo权限构建CMake install目标
在CLion中无需以root启动即可给install目标添加sudo权限的解决方案
方法1:修改CMakeLists.txt包装install命令
直接在项目的CMakeLists.txt里,把install操作包装进sudo执行的流程里:
install(CODE "execute_process(COMMAND sudo ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake)")
每次触发install时,终端会弹出sudo密码提示,输入后就能完成权限安装。
方法2:在CLion里创建自定义构建目标
- 点击右上角运行配置的下拉菜单,选择「Edit Configurations」
- 左上角点「+」,选「CMake Application」
- 「Target」栏选择「install」,然后在「Before launch」区域点击「+」,添加「Run External Tool」
- 配置外部工具:
- 名称随便填,比如
sudo_install - 程序填
sudo - 参数填
cmake --build . --target install - 工作目录选你的build目录,直接用变量
$CMakeBuildDir$就行
- 名称随便填,比如
- 保存后,运行这个自定义目标,就会以sudo权限执行install步骤
方法3:配置sudo免密执行cmake(谨慎使用)
如果不想每次输入密码,可以给当前用户的cmake命令开sudo免密:
- 终端运行
sudo visudo - 在文件末尾添加一行(把
your_username换成你的实际用户名):your_username ALL=(ALL) NOPASSWD: /usr/bin/cmake - 保存退出后,在CLion里直接执行install目标,就会自动获取sudo权限
注意:这个操作会让你无需密码就能用sudo执行cmake,仅限可信环境下使用,避免安全风险。
方法4:用shell脚本包装install流程
- 在项目根目录创建
install_with_sudo.sh脚本,内容如下:
#!/bin/bash cd build sudo cmake --build . --target install
- 终端执行
chmod +x install_with_sudo.sh给脚本加执行权限 - 在CLion里创建「Shell Script」类型的运行配置,指向这个脚本,运行时就会触发sudo安装
内容的提问来源于stack exchange,提问作者SMa
相关产品推荐
相关产品推荐

