1

当我想编译一个使用动态库的程序时,我是否必须安装(即复制到特定位置,例如 /usr/share/lib)这个库?或者是否可以,如果我将这个库放在某个地方的任何地方,然后在链接期间我将链接器指向它,例如'-L ./thelibfolder'?

4

1 回答 1

0

我是否必须安装(即复制到特定位置,例如 /usr/share/lib)这个库?

不。

对于 UNIX 共享库,您需要安排两件事:

  • 在链接主要可执行文件时,您必须使静态链接器知道该库。通常这是通过将-L/path/to/directory -lfoo链接标志添加到链接行来实现的。
  • 您还必须进行运行时加载程序搜索/path/to/directory。这是特定于系统的。在许多系统上,设置LD_LIBRARY_PATH环境变量可以达到预期的效果,尽管这通常不是首选方法。另一种方法是将此路径编码到应用程序本身,例如在 Linux 上将添加-Wl,-rpath=/path/to/directory到应用程序链接行。
于 2013-02-23T04:12:25.287 回答