必须通过运行/调试配置设置参数:点击「运行→编辑配置→+→CMake Application」,勾选“存储为项目文件”,在「程序参数」填空格分隔参数(如--verbose --input=data.txt),工作目录设为$ProjectFileDir$,环境变量用$ProjectFileDir$拼接路径。

在CLion中为C/C++项目设置调试参数,必须通过运行/调试配置完成,直接修改源码或编译命令行无效。
创建永久调试配置
点击顶部菜单栏「运行」→「编辑配置…」→ 左上角「+」→ 选择「CMake Application」。
在「名称」字段中输入有意义的名称,比如「debug-with-args」,避免用默认名「CMake Application」,否则多个配置时极易混淆。
【必须勾选“存储为项目文件”】 否则配置仅保存在本地 .idea/workspace.xml 中,Git提交后队友无法复现你的调试环境。
配置创建后,它会出现在右上角运行/调试切换器下拉列表中,图标为不透明实心方块——这是永久配置的视觉标识。
设置程序参数与工作目录
方法一:基础参数填入「程序参数」字段
在「配置」选项卡下的「程序参数」框中,直接输入空格分隔的参数,例如:--verbose --input=data.txt。注意不要加引号包裹整个字符串,否则会被当作单个参数传入。
方法二:用宏动态指定路径
点击「程序参数」右侧的 ƒ 按钮 → 选择 $FilePath$ 可插入当前编辑文件路径,选 $ProjectFileDir$ 可插入项目根目录。这对需要读取相对路径资源的调试场景很关键——不手动写死路径,换机器也能跑通。
工作目录必须显式设为 $ProjectFileDir$ 或其子目录。若留空,CLion 默认使用 CMake 构建目录(如 cmake-build-debug),此时 fopen("data.txt") 会去构建目录找文件,而非你期望的项目根目录,导致文件打开失败。
注入环境变量
第一步:点击「环境变量」右侧的「…」按钮
第二步:在弹出窗口中点击「+」添加键值对,例如键填 LD_LIBRARY_PATH,值填 $ProjectFileDir$/lib:$ProjectFileDir$/deps/lib
第三步:勾选「将系统环境变量传递给进程」——这一步决定你的程序能否加载系统级共享库(如 libstdc++.so),漏掉会导致运行时报 undefined symbol 错误。
环境变量值中支持路径变量和宏,但不支持 shell 展开(如 $(pwd) 无效)。若需拼接绝对路径,必须用 $ProjectFileDir$ 这类 CLion 内置变量。
重定向输入与输出
「重定向输入来源」字段填入文件路径,例如 input.txt。该路径以「工作目录」为基准,不是以项目根目录为基准——这点极易踩坑。如果工作目录设的是 $ProjectFileDir$,就填 input.txt;如果工作目录是 $ProjectFileDir$/build,就得填 ../input.txt。
输出重定向不在 GUI 中提供,需改用「启动前任务」方式:点击「启动前」→「添加」→「运行外部工具」→ 配置一个 Shell 命令,例如 ./myapp > output.log 2>&1。注意这会绕过 CLion 的控制台捕获,调试时看不到实时 stdout。
调试过程中若需临时切换输入源,可直接在「重定向输入来源」字段中使用 $FilePrompt$ 宏。每次启动时弹窗让你选文件,适合反复测试不同输入样本。


















