如何在Ubuntu 16.04中添加静态和动态库?

如何在Ubuntu 16.04中添加静态和动态库?,ubuntu,shared-libraries,static-libraries,Ubuntu,Shared Libraries,Static Libraries,基本上,我下载了一个C/C++SDK,我有几个.so和.a文件。SDK中没有安装脚本。它只包含头文件和.so和.a文件。我真的不知道把这些文件放在哪里 通常,如果我下载了一些SDK,就会有一个安装脚本为我执行此操作。我不必手动执行此操作。我应该把这些文件放在哪里?这其实并不重要-无论如何,您必须将lib路径传递给编译器。如果将它们放在应用程序主目录中(源在哪里,运行make在哪里),就不必放置完整路径。否则,您将只放置绝对路径或相对路径。在Unix和Linux中,使用 所指目录:- /usr:

基本上,我下载了一个C/C++SDK,我有几个.so和.a文件。SDK中没有安装脚本。它只包含头文件和.so和.a文件。我真的不知道把这些文件放在哪里


通常,如果我下载了一些SDK,就会有一个安装脚本为我执行此操作。我不必手动执行此操作。我应该把这些文件放在哪里?

这其实并不重要-无论如何,您必须将lib路径传递给编译器。如果将它们放在应用程序主目录中(源在哪里,运行make在哪里),就不必放置完整路径。否则,您将只放置绝对路径或相对路径。

在Unix和Linux中,使用 所指目录:-

  • /usr:-内容不是系统关键的

  • /usr/bin
    -由供应商/发行版或使用安装的可执行文件的根路径 供应商/发行商的包管理器

  • /usr/lib
    -由供应商/发行版或使用安装的库的根路径 供应商/发行商的包管理器

  • /usr/include
    -由供应商/发行版或使用安装的头文件的根路径 供应商/发行商的包管理器

  • /usr/local/bin
    -系统用户安装的可执行文件的根路径 root权限(您),但不与供应商/发行商的软件包管理器联系

  • /usr/local/lib
    -由您安装但不使用的库的根路径 供应商/发行商的软件包经理

  • /usr/local/include
    -由您安装但不使用的头文件的根路径 供应商/发行商的软件包经理

为了保证系统的稳定性,安装或删除文件非常重要 在
usr/{bin | lib | include}
中,仅与供应商/发行版的包管理器一起使用, 您可以信任它来理解包的相互依赖性(按版本) 不要把系统搞得一团糟

另一方面,软件包管理器不会在
usr/local
你可以这样做,有根特权。因此
usr/local/{bin | lib | include}
安装可执行文件|库|头文件的合适位置 为您的package manager采购或获取现成但未打包的产品

这些位置特别适用于安装C或C++软件中使用的文件,因为:-<

usr/local/bin
是可执行文件的默认搜索路径

usr/local/include
是头文件的默认编译器搜索路径,因此 如果您的代码包含,例如

#include <foo/bar.h>
在放置任何新的共享库之后

不要忘记,您安装的任何二进制文件,如果无法访问源代码, 而不是打包在供应商/发行版的官方存储库中
包含恶意软件的几率增加。

它们有人们通常放置它们的典型位置吗?
ldconfig /usr/local/lib