【Cmake】——常见环境变量

cmake

  1. ${PROJECT_SOURCE_DIR}: CMakeLists.txt所在的路径
### 环境变量 `LD_LIBRARY_PATH` 的设置位置及其与 CMake 列表的关系 #### 关于 `LD_LIBRARY_PATH` 的设置位置 环境变量 `LD_LIBRARY_PATH` 通常被用来指定动态链接器在运行时查找共享库的附加路径。它的作用仅限于程序执行阶段,而不影响编译或链接阶段的操作[^1]。以下是几种常见的方式用于设置该环境变量: - **Shell 配置文件** 用户可以在个人 Shell 配置文件(如 `.bashrc`, `.zshrc`)中永久定义这个变量: ```bash export LD_LIBRARY_PATH=/path/to/libraries:$LD_LIBRARY_PATH ``` - **临时生效** 在当前会话中直接导出变量以即时应用变化: ```bash export LD_LIBRARY_PATH=/another/path/to/libs:$LD_LIBRARY_PATH ``` - **命令前缀形式** 执行特定命令之前立即设定此变量的作用域至单一指令周期内有效: ```bash LD_LIBRARY_PATH=/specific/path/to/dlls ./my_application ``` 这些方法的选择取决于需求场景——比如是否希望更改长期保留还是仅仅针对某次调用做特殊安排。 #### 它是否与 CMake 列表相关 虽然两者都涉及到软件构建过程中资源定位的概念,但实际上它们服务于不同的环节,并不存在直接关联性[^3]: - **CMake Lists (`CMAKE_PREFIX_PATH`)** - 主要在项目初始化阶段帮助寻找包含头文件(`include directories`) 和库文件(`library files`) 的地方。 - 影响到的是 cmake 工具本身如何去探测依赖项的位置信息。 - **Environment Variable (`LD_LIBRARY_PATH`)** - 只有当最终产物(可执行文件或其他类型的二进制模块)试图加载那些非标准系统目录下存放的 so 库时候才发挥作用。 - 不参与任何源码分析、预处理器宏扩展之类的早期活动;纯粹是为了满足已生成的应用启动后的动态连接请求服务而已。 因此可以说,除非特别设计成需要依据后者来决定前者的内容填充逻辑外,默认情况下二者之间并无必然联系[^4]. ```python # Example demonstrating how one might programmatically adjust an env var within python script before invoking another process. import os from subprocess import call original_ld_lib_path = os.getenv('LD_LIBRARY_PATH','') new_paths_to_add = "/custom/paths/to/add" adjusted_env = {'LD_LIBRARY_PATH': f"{new_paths_to_add}:{original_ld_lib_path}"} call(["./target_binary"], env=adjusted_env) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值