如何在Ubuntu 16.04中添加静态和动态库?
基本上,我下载了一个C/C++SDK,我有几个.so和.a文件。SDK中没有安装脚本。它只包含头文件和.so和.a文件。我真的不知道把这些文件放在哪里如何在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:
通常,如果我下载了一些SDK,就会有一个安装脚本为我执行此操作。我不必手动执行此操作。我应该把这些文件放在哪里?这其实并不重要-无论如何,您必须将lib路径传递给编译器。如果将它们放在应用程序主目录中(源在哪里,运行make在哪里),就不必放置完整路径。否则,您将只放置绝对路径或相对路径。在Unix和Linux中,使用 所指目录:-
- /usr:-内容不是系统关键的
-由供应商/发行版或使用安装的可执行文件的根路径 供应商/发行商的包管理器/usr/bin
-由供应商/发行版或使用安装的库的根路径 供应商/发行商的包管理器/usr/lib
-由供应商/发行版或使用安装的头文件的根路径 供应商/发行商的包管理器/usr/include
-系统用户安装的可执行文件的根路径 root权限(您),但不与供应商/发行商的软件包管理器联系/usr/local/bin
-由您安装但不使用的库的根路径 供应商/发行商的软件包经理/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