You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion运行构建目标时忽略LD_LIBRARY_PATH的解决咨询

问题描述

我在.bashrc里已经把LD_LIBRARY_PATH设到了指定目录,但CLion运行项目构建出的目标文件时,这个路径被忽略,导致找不到共享库:

/home/joeuser/src/myproj/cmake-build-debug/bin/myapp
/home/joeuser/src/myproj/cmake-build-debug/bin/myapp: error while loading shared libraries: libfoo.so.11.0: cannot open shared object file: No such file or directory

在shell会话里直接运行这个可执行文件时,能通过LD_LIBRARY_PATH正常找到libfoo.so.11.0并运行。

备注:

  • 系统是Devuan GNU/Linux Daedalus
  • 在CMake的Terminal标签页里调用程序能正常运行
  • 已确认/etc/ld.so.conf.d/cuda文件包含对应的库路径
解决方法

1. 让CLion继承shell的环境变量

CLion默认不会读取.bashrc里的环境变量,尤其是通过图形界面启动的时候。可以这么处理:

  • 打开终端,先执行source ~/.bashrc确保配置生效,然后在终端里运行clion.sh启动CLion。
  • 如果用桌面快捷方式启动,把快捷方式的执行命令改成bash -i -c "clion.sh",这样会以交互式shell启动CLion,自动读取.bashrc的配置。

2. 在CLion里直接配置环境变量

打开CLion的设置:

  • 进入Run/Debug Configurations,找到你的项目运行配置。
  • 在Environment variables区域点击编辑按钮,添加LD_LIBRARY_PATH变量,值填你需要的路径(比如/path/to/your/lib:$LD_LIBRARY_PATH)。

3. 通过CMake配置运行时库路径

在项目的CMakeLists.txt里加以下代码,让CMake生成可执行文件时指定运行时库的搜索路径:

set_target_properties(myapp PROPERTIES
    BUILD_RPATH_USE_ORIGIN TRUE
    INSTALL_RPATH_USE_LINK_PATH TRUE
    BUILD_RPATH "/path/to/your/lib"
)

也可以用全局设置:

set(CMAKE_INSTALL_RPATH "/path/to/your/lib")
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

4. 更新系统动态库缓存

虽然你已经确认/etc/ld.so.conf.d/cuda包含路径,但可能没更新系统缓存。运行下面的命令:

sudo ldconfig

系统会重新加载动态库配置,之后CLion运行程序可能就能找到库了。

内容的提问来源于stack exchange,提问作者einpoklum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:03:35