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

如何通过CMakeLists.txt修改生成的Makefile中的LD_LIBRARY_PATH?

解决CMake构建Qt项目时uic工具的LD_LIBRARY_PATH配置问题

你可以通过修改CMakeLists.txt中的CMAKE_UIC_COMMAND变量,让CMake自动在生成的Makefile中为uic命令添加LD_LIBRARY_PATH环境变量前缀,无需手动修改Makefile。具体步骤如下:

  1. 先确保已正确找到Qt的uic工具
    在CMakeLists.txt中完成Qt的包查找后,获取uic工具的实际路径:

    find_package(Qt5 REQUIRED COMPONENTS Widgets)
    get_target_property(UIC_EXEC_PATH Qt5::uic IMPORTED_LOCATION)
    

    如果是Qt6,将Qt5替换为Qt6即可。

  2. 重新构造带环境变量的uic命令
    将LD_LIBRARY_PATH前缀添加到uic命令前,覆盖默认的CMAKE_UIC_COMMAND:

    set(CMAKE_UIC_COMMAND "LD_LIBRARY_PATH=/3rdparty/tools_ext/lib/lin64:$ENV{LD_LIBRARY_PATH} ${UIC_EXEC_PATH}")
    

    这样CMake生成的Makefile中,所有调用uic的地方都会自动带上这个环境变量配置,避免手动修改被覆盖的问题。

备选方案:全局设置Makefile环境变量

如果你希望所有构建过程中的工具都能使用这个库路径(不只是uic),可以设置CMAKE_MAKEFILE_FLAGS:

set(CMAKE_MAKEFILE_FLAGS "${CMAKE_MAKEFILE_FLAGS} LD_LIBRARY_PATH=/3rdparty/tools_ext/lib/lin64:$ENV{LD_LIBRARY_PATH}")

这种方式会让make命令执行时全局生效,但可能影响其他工具的运行,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:32:18