当前位置: 首页 > news >正文

详解Linux下的环境变量以及C++库文件和头文件、python库的配置

目录

Linux环境变量配置基本步骤

1.查看环境变量

2.设置环境变量

3.永久性设置环境变量

4.使用环境变量

C++ 库文件和头文件环境变量配置

1.配置so库文件的环境变量

2.配置头文件的环境变量

Python库环境变量配置

Linux配置执行文件环境变量


我们都习惯在Windows 上配置环境变量,例如 Windows设置系统环境变量即在path中添加配置路径即可;使用VS则在项目设置中配置库文件和头文件路径;使用vscode 则常用cmake编译,编写CMakeLists.txt 链接库文件或头文件即可。

而在Linux 环境中,则需要记住一些常用命令和常量值,在此总结如下,以供参考。

Linux环境变量配置基本步骤

在Linux中,环境变量是一些可被程序访问的全局变量,可以用于配置系统行为、定义软件的运行时参数和其他的目的。以下是环境变量配置的详细步骤:

1.查看环境变量

使用printenvecho $VARIABLE_NAME命令可以查看当前环境变量。printenv命令可以列出所有的环境变量,而echo $VARIABLE_NAME命令则可以输出指定环境变量的值。

2.设置环境变量

在Linux中,可以使用export命令将变量设置为环境变量。例如,要将MY_VAR设置为hello,可以运行

export MY_VAR=hello

也可以将多个变量设置为环境变量,例如:

export MY_VAR1=value1 export MY_VAR2=value2

3.永久性设置环境变量

如果想要在每次登录时自动加载环境变量,需要将环境变量添加到.bashrc文件中。这个文件是每个用户的个人bash配置文件,当用户登录时,它会自动加载。可以通过以下命令打开这个文件:

vi ~/.bashrc

在文件的末尾添加以下内容:

export MY_VAR=value

然后按下Esc键退出编辑模式,输入:wq保存并退出。

 配置完成之后需要执行

source ~/.bashrc 

命令来使环境变量生效。这个命令会重新加载 .bashrc 文件,让配置的环境变量生效。

4.使用环境变量

在程序中,可以使用$VARIABLE_NAME来引用环境变量的值。例如,在bash脚本中,可以使用以下代码来获取MY_VAR的值:

echo $MY_VAR

这将输出hello,这是我们在步骤2中设置的值。

总之,Linux的环境变量配置非常简单,只需要使用export命令即可将变量设置为环境变量,然后在程序中使用$VARIABLE_NAME来引用它们。对于需要在每次登录时自动加载的环境变量,只需将其添加到.bashrc文件中即可。

C++ 库文件和头文件环境变量配置

当编译C++程序时,如果依赖某些外部库文件或头文件,我们需要告诉编译器它们的位置。一种常见的做法是将这些路径设置为环境变量,以便编译器可以在编译过程中自动查找它们。以下是两个案例:

1.配置so库文件的环境变量

假设我们有一个名为libfoo.so的共享库,位于/usr/local/lib目录下。我们可以通过以下命令将其路径添加到LD_LIBRARY_PATH环境变量中:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

这样,当我们编译使用libfoo.so的程序时,编译器会自动在/usr/local/lib目录中查找该库文件。

2.配置头文件的环境变量

假设我们有一个名为foo.h的头文件,位于/usr/local/include目录下。我们可以通过以下命令将其路径添加到CPLUS_INCLUDE_PATH环境变量中:

export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH

这样,当我们编译使用foo.h的程序时,编译器会自动在/usr/local/include目录中查找该头文件。

当然我们也可以将这两条指令写入到~/.bashrc中,使之永久生效。

总之,配置C++的so库文件的环境变量或头文件的环境变量是一种常见的做法,可以让编译器在编译过程中自动查找它们,提高编译效率。

Python库环境变量配置

在Python中,我们也可以通过设置环境变量来告诉Python解释器查找库文件的位置。以下是一个例子:

假设我们有一个名为mylib的Python库,位于/path/to/mylib目录下。我们可以通过以下命令将其路径添加到PYTHONPATH环境变量中:

export PYTHONPATH=/path/to/mylib:$PYTHONPATH

这样,当我们在Python中使用import mylib时,Python解释器会自动在/path/to/mylib目录中查找该库文件。

另外,我们也可以使用sys.path模块来动态添加Python库的路径,例如:

import sys
sys.path.append('/path/to/mylib')
import mylib

这样,Python解释器也会自动在/path/to/mylib目录中查找该库文件。

Linux配置执行文件环境变量

配置可执行文件的环境变量可以让该可执行文件在任何路径下都可以被直接执行,而无需在可执行文件的路径下运行。以下是一个例子:

假设我们有一个名为myprog的可执行文件,位于/path/to/myprog目录下。我们可以将其路径添加到PATH环境变量中,以便在任何路径下都可以直接运行该可执行文件。例如:

export PATH=/path/to:$PATH

这样,当我们在任何路径下执行myprog时,系统会自动在/path/to目录中查找该可执行文件并执行它。

另外,我们也可以将可执行文件复制到系统的标准路径(例如/usr/bin/usr/local/bin),这样在任何路径下都可以直接运行该可执行文件。但是这种做法可能需要管理员权限。

需要注意,过多的环境变量设置可能会影响系统性能和安全性,因此应该谨慎使用。

相关文章:

详解Linux下的环境变量以及C++库文件和头文件、python库的配置

目录 Linux环境变量配置基本步骤 1.查看环境变量 2.设置环境变量 3.永久性设置环境变量 4.使用环境变量 C 库文件和头文件环境变量配置 1.配置so库文件的环境变量 2.配置头文件的环境变量 Python库环境变量配置 Linux配置执行文件环境变量 我们都习惯在Windows 上配置…...

企业级分布式数据库 - GaussDB介绍

目录 什么是GaussDB 简介 应用场景 产品架构 产品优势 安全 责任共担 身份认证与访问控制 数据保护技术 审计与日志 ​​​​​​​监控安全风险 ​​​​​​​故障恢复 ​​​​​​​认证证书 GaussDB与其他服务的关系 约束与限制 计费模式 什么是GaussDB …...

Linux I2C 驱动实验

目录 一、Linux I2C 驱动简介 1、I2C 总线驱动 2、I2C 设备驱动 1、 i2c_client 结构体 2、 i2c_driver 结构体 二、硬件分析 三、设备树编写 1、pinctrl_i2c1 2、在 i2c1 节点追加 ap3216c 子节点 3、验证 四、 代码编写 1、makefile 2、ap3216c.h 3、ap3216c.c …...

DC-DC模块电源隔离直流升压高压稳压输出5v12v24v转60v100v110v150v220v250v300v400v500v

特点效率高达80%以上1*1英寸标准封装单电压输出稳压输出工作温度: -40℃~85℃阻燃封装,满足UL94-V0 要求温度特性好可直接焊在PCB 上应用HRB 0.2~10W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、及18~36VDC标准&#…...

EF有几种模式,EF的三种模式分别是什么?

EF有几种模式,EF的三种模式分别是什么? 第一种:DataBase First DataBase First传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。 解释&#xf…...

数据可视化展示:打工人常见职业病,颈腰椎病占比最高达66.51%

身体健康才是一切的根本。只有身体健健康康才能更好的去享受世间的美好,无论是谁都应当注重身体健康,而不是无度的挥霍它! 良好的身体,释放给工作,健壮的体魄,享受美好生活,良好的心态&#xff…...

【食品图像识别】Large Scale Visual Food Recognition

1 引言 视觉智能部与中科院计算所于2020-2021年度展开了《细粒度菜品图像识别和检索》科研课题合作,本文系双方联合在IEEE T-PAMI2023发布论文《Large Scale Visual Food Recognition》 (Weiqing Min, Zhiling Wang, Yuxin Liu, Mengjiang Luo, Liping Kang, Xiaom…...

RAN-in-the-Cloud:为 5G RAN 提供云经济性

RAN-in-the-Cloud:为 5G RAN 提供云经济性 5G 部署在全球范围内一直在加速。 许多电信运营商已经推出了5G服务并正在快速扩张。 除了电信运营商之外,企业也对使用 5G 建立私有网络产生了浓厚的兴趣,这些私有网络利用了更高的带宽、更低的延迟…...

vector、list、queue

引用:windows程序员面试指南 vector vector 类似于C语言中的数组 vector 支持随机访问,访问某个元素的时间复杂度 O(1) vector 插入和删除元素效率较低,时间复杂度O(n) vector 是连续存储,没有内存碎片,空间利用率高…...

操作系统面经

进程与线程区别 1.进程是资源分配的最小单位,线程是程序执行的最小单位(资源调度的最小单位) 2.进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数…...

一天约了4个面试,复盘一下面试题和薪资福利

除了最新的面经分享,还有字节大佬的求职面试答疑,告诉你关键问题是什么?少走弯路。**另外本文也汇总了6份大厂面试题:字节、腾讯、小米、腾讯云、滴滴、小米游戏。**希望对大家有帮助。 前言 昨天我的交流群里,有位宝…...

详解单链表(内有精美图示哦)

全文目录引言链表链表的定义与结构链表的分类单链表的实现及对数据的操作单链表的创建与销毁创建销毁单链表的打印单链表的头插与头删头插头删单链表的尾插与尾删尾插尾删单链表的查找单链表在pos位置后插入/删除插入删除单链表在pos位置插入/删除插入删除总结引言 在上一篇文…...

csdn文章导航

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...

【Spring】掌握 Spring Validation 数据校验

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Spring Validation 数据校验一、什么是 Spring…...

定语 从句

回顾能作定语的成分 形容词:She is a responsible girl.她是一个负责任的姑娘。(前置定语) The girl responsible was expelled.对此负责的姑娘被开除了。(后置定语) 代词:Whose f…...

【数据可视化工具】浅谈 DataEase 和 FineBI 支持的数据源

前言最近对市面上比较火热的数据可视化工具 DataEase 和 FineBI 进行了调研,在支持的数据源方面感觉不太一样,所以就有了这篇文章,话不多说,我们一起来看一下吧!以下的内容,大多来自两个工具的官方文档&…...

100种思维模型之上帝视角思维模型-025

惊奇、愤怒、郁闷,我们觉得生活不精彩,事情乱作一团,但这仅仅是视角问题而已。 换个视角,可以看到不同的世界。 “上帝视角思维模型”,即以一个更高、更客观、更理性的角度来看问题,从而做出理性的决策。 …...

从这5个方面,总结我当PM的第一年

以下5个方面(学习、思考、沟通、执行、产品)的分享,都是我站在巨人的肩膀上,结合自己所学所做总结而来;同时,我也继续学习,不断完善这些知识。如有不当,欢迎大家指正~一、学习&#…...

ChatGPT可以作为一个翻译器吗?

论文地址:https://arxiv.org/abs/2301.08745.pdf 背景 自从OpenAI2022年11月30日发布ChatGPT以来,基本上把NLP所有任务大统一了,那么在机器翻译的表现到底如何呢?腾讯AI Lab在翻译Prompt、多语言翻译以及翻译鲁棒性三方面做了一…...

详述java的设计模式(三)

1.装饰者模式 装饰者模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 使用场景: 在不影响其他对象的情况下&#xff…...

Linux命令·pwd

Linux中用 pwd 命令来查看”当前工作目录“的完整路径。 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录。 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置。1.命令格式:pwd [选项…...

以图搜图服务快速搭建

以图搜图服务快速搭建 电商公司,管理的商品少则几千,多则上百万。如何帮助用户从多如牛毛的商品中找到类似的商品就成了问题。 以图搜图就可以很好的帮助解决这个问题,通过 Towhee(resnet50 模型) Milvus 如何实现本…...

【TensorFlow安装踩坑记录】

TensorFlow安装踩坑记录第一步,切换服务器cuda版本第二步,conda安装tensorflow记录一下最近安装Tensorflow v1时遇到的问题和解决办法第一步,切换服务器cuda版本 首先我想安装tensorflow 1.13.1,兼容的cuda版本是10.0&#xff0c…...

03.03回溯法

class Solution { public:vector<int> temp;vector<vector<int>> ans;void dfs(int cur,int n,int k){//剪枝 temp 长度加上区间 [cur, n] 的长度小于 k&#xff0c;不可能构造出长度为 k 的 tempif(temp.size()(n-cur1)<k){return;}if(temp.size()k){ans…...

I.MX6ULL内核开发0:linux内核模块

目录 简要 一、内核模块的概念 二、内核模块加载、卸载过程 简要 1、内核模块的概念 2、内核模块的原理&#xff1a;内核模块在内核的加载、卸载过程。 一、内核模块的概念 内核&#xff0c;是一个操作系统的核心。是基于硬件的第一层软件扩充&#xff0c;提供操作系统的最…...

qsort快速排序的实现以及模拟实现qsort的功能(狠狠的拿捏)

当你为错过太阳而哭泣的时候&#xff0c;你也要再错过群星了。 --泰戈尔 目录 一.qsort快速排序的实现 二.模拟实现一个qsort功能的函数 一.qsort快速排序的实现 下面是 qsort() 函数的声明&#xff1a; void qsort(void *base, size_t nitems, size_t size, int (…...

[Java·算法·中等]LeetCode215. 数组中的第K个最大元素

每天一题&#xff0c;防止痴呆题目示例分析思路1题解1分析思路2题解2分析思路3题解3&#x1f449;️ 力扣原文 题目 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不…...

xgboost:算法数学原理

xgboost算法数学原理 1、求预测值 y^iϕ(xi)∑k1Kfk(xi),fk∈F,(1)\hat{y}_i\phi\left(\mathbf{x}_i\right)\sum_{k1}^K f_k\left(\mathbf{x}_i\right), \quad f_k \in \mathcal{F},\tag{1} y^​i​ϕ(xi​)k1∑K​fk​(xi​),fk​∈F,(1) F{f(x)wq(x)}(q:Rm→T,w∈RT)\mathca…...

map、multimap、unordered_map

引用&#xff1a;windows程序员面试指南 map map 红黑树 map 对value值无要求 map 有序&#xff0c;按照key值自动排序 map key值唯一 map 头文件&#xff1a;#include map 支持重载[]的运算符 map 为保持有序性&#xff0c;erase()开销大 multimap multimap 红黑树 multim…...

2023年全国最新会计专业技术资格精选真题及答案11

百分百题库提供会计专业技术资格考试试题、会计考试预测题、会计专业技术资格考试真题、会计证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 一、选择题 1.下列各项中&#xff0c;仅将生产过程中消耗的变动成本计入产品成本…...

杭州g20网站建设公司/获客

读书笔记-Effective Java&#xff08;Lambda和Stream&#xff09;42. Lambda优先于匿名类43.方法引用优先于Lambda44.坚持使用标准的函数接口45.谨慎使用Stream46.优先使用Stream中无副作用的函数47.Stream要优先用Collection作为返回类型48.谨慎使用Stream并行42. Lambda优先于…...

网站建设创意报告书/百度排名软件

內核所在目錄&#xff1a;/usr/src/linux/ Pacman系統更新相關&#xff1a;pacman -Su 升級系統中所有已經安裝的包&#xff1b;pacman -Syu 升級系統同步倉庫數據&#xff1b;pacman -Sc 清理當前未被安裝的軟件包之緩存&#xff08;/var/cache/pacman/pkg&#xff09;&#x…...

网站设计方法/国外网络推广

“短视频”目前呈现井喷式的发展&#xff0c;主要得益于傻瓜化的内容制作和便捷化的内容传播&#xff0c; “快手”、“抖音和快手”两大短视频平台都倡导的是利用平台去记录和分享生活&#xff0c;在编辑拍摄的视频时&#xff0c;可以利用官方平台提供的简易剪辑工具进行简单加…...

视频网站怎么做统计/网络代运营推广

1 前言 1.1 学习阶段说明   从2016年9月开始接触IT&#xff0c;学习经历主要分为以下三个阶段 1.1.1 入门阶段 从最基础的前端技术HTML、JavaScript、CSS开始入门&#xff0c;再到后端技术Java基础、MySQL数据库基础知识、JDBC、Servclet、JSP。利用这些简单技术实现了从前端…...

做淘宝图的素材搜索网站/百度投诉中心24小时电话

就只是贴了一个代码&#xff0c;部分解释写在代码注释里面了&#xff0c;之后会补上文字解释&#xff1a; 1. 第一种方式&#xff1a; import torch import torchvision import time #用于计时的 from torch import nn from torch.nn import Conv2d, MaxPool2d, Flatten,…...

php动态网页作业/桂林seo

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2021年电梯司机多少钱及电梯司机在线考试&#xff0c;包含电梯司机多少钱答案和解析及电梯司机在线考试练习。由安全生产模拟考试一点通公众号结合国家电梯司机考试最新大纲及电梯司机考试真题汇总&#xff0c;有助于…...