linux下,一个模块的符号,如果想被其他模块或者内核使用,是不是必须用那个EXPORT的宏导出啊

linux下,一个模块的符号,如果想被其他模块或者内核使用,是不是必须用那个EXPORT的宏导出啊,第1张

linux下没有export的概念。一个模块内的函数或变量,要被其他模块使用,具备以下条件即可:

1、函数或变量是全局或共有的,保护型也可以被其子类引用

2、在编译过程中引用宏,如模块 libA.so,在编译时引用 -lA即可,如果A的路径没有在环境变量LD_LIBRARY_PATH内,可以时延-L指定路径。

希望可以帮助到你!

环境变量是 *** 作系统在每一个进程的内存地址空间中放的一系列变量.是一种方便设置一个进程的参数的方法.

进程是 *** 作系统指令的执行单位,要执行任何指令,比如echo,或者一个脚本文件, *** 作系统都会启动一个新的进程.你的terminal和在里面执行的bash都是进程.一个bash的脚本文件是在bash进程中执行的.

在bash中,设置该进程的环境变量的方式很简单,在脚本中用=就可以了,不需要export.你可以在自己的terminal中尝试

VAR=myvar

echo $VAR

进程可以启动新的进程,新的进程是该进程的子进程.一个直观的问题就是进程和它的子进程的环境变量是什么关系.在linux设计中是默认没有关系。那接着的一个直观的问题就是我想让子进程有同样的环境变量怎么办?用export

用了export以后,所有子进程(孙子进程,曾孙子进程,曾曾孙子进程,曾曾曾孙子进程)就都会继承环境变量,不用反复重新设了。

在terminal的bash设置中export就是所有在这个terminal中开启的新进程,也就是terminal的子进程,孙子进程,曾孙子进程,曾曾孙子进程,曾曾曾孙子进程,都能看见这些环境变量。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8632327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存