【发布时间】:2015-03-19 19:34:52
【问题描述】:
这是关于位于中心位置的路径规范的问题,例如 PATH、LD_LIBRARY_PATH 和 LIBRARY_PATH。
我知道有两种方法可以为加载程序指定共享库路径:将它们添加到 LD_LIBRARY_PATH,或者将文件添加到 /etc/ld.so.conf.d/。我也知道后者被认为是更现代和更受欢迎的方式。
我还知道您可以通过编辑 LIBRARY_PATH 为链接器指定标准库路径。这仍然是“现代”方式吗,还是现在我应该使用“ld.so.conf.d-style”替代方案?
编辑:人们在问“为什么”,所以:
我正在使用一个 Python 包 (Theano),它在运行时会动态生成和编译 CUDA 和 C++ 代码。它链接到的库之一是 NVidia 的 cuDNN。我不知道为什么 Theano 的开发者将它链接到静态库而不是动态库。
【问题讨论】:
-
请解释你为什么问这个问题。使用静态链接的二进制文件,您的问题没有真正的意义。但是您应该更喜欢动态链接的二进制文件。您希望在运行时更改其静态库的可执行文件有哪些?
-
您是否正在寻找链接器在确定在何处查找静态库时会注意的机制(在链接时,而不是运行时)?
标签: linux ubuntu linker sysadmin system-paths