LD_LIBRARY_PATH 是一个环境变量,它告诉您启动可执行文件时 dll 加载器应该在哪些目录中查找动态库。该变量很危险且已弃用
LIBRARY_PATH - 告诉链接器在构建 exe 或 lib 时在哪里查找库 INCLUDE_PATH - 告诉在哪里查找 #include 语句中引用的文件
在任何情况下,LIBRARY_PATH 和 INCLUDE_PATH 都应该在特定的构建系统中设置,而不是在 bashrc 中。脚本越容易构建 c 源代码,您的 PC 就越有可能被 rootkit 感染。
顺便说一句:gcc 是一个包装器,它调用适当的编译器(例如 cc 或 g++)和链接器。g++ 是 gnu c++ 编译器
编辑
解释,为什么 LD_LIBRARY_PATH 很危险。
我已经有几年没有使用 Linux 了,我想知道这个 env 变量是否仍在当前发行版中。当我使用 Linux(大约 2006 年)时,它被认为已弃用,因为它提供了非常容易利用的钩子。
它的问题是,它规定了 ld.so - 动态链接器查找所需库的路径顺序。如果 LD_LIBRARY_PATH 包含一个可写目录,那么黑客(在新言论中是网络犯罪分子)可以在该目录中放置一个库,该库的名称可能在系统目录中找到(例如 /usr/lib)。这个库可以先做任何肮脏的工作,然后调用原始库。利用 LD_LIBRARY_PATH 比破坏系统目录中的二进制文件要容易得多。而且这样的漏洞也很难被发现。