在哪里放置外部库
Where to put external libraries
我目前正在使用 C++ 编写静态库。我的库使用外部库(预编译)。问题是;我应该把这些外部库放在哪里?我只是想适应目录结构的通用方案。
目前,我的目录结构如下所示:
build // Object files
include // Header files
lib // Compiled library
src // Source directory
test // Test sources
tools // Helpful scripts etc.
使用名为 external
或 third_party
的目录在许多项目中很常见。
通常,外部库存储在外部。即在项目之外。
不同的系统有不同的约定。例如,在 POSIX 系统上,库档案通常存储在 /usr/lib 和 headers 中 /usr/include。此类外部库通常使用系统提供的包管理器进行安装。使用系统提供的库(除了它们的位置和管理是特定于系统的)的缺点是有时您对获得的版本没有太多控制权。好处是通过动态链接共享库。
还有 cross-platform 库的包管理器,它们可以很好地与静态链接配合使用,并允许使用特定版本的库。这些包管理器也有自己的下载库的约定。
我目前正在使用 C++ 编写静态库。我的库使用外部库(预编译)。问题是;我应该把这些外部库放在哪里?我只是想适应目录结构的通用方案。
目前,我的目录结构如下所示:
build // Object files
include // Header files
lib // Compiled library
src // Source directory
test // Test sources
tools // Helpful scripts etc.
使用名为 external
或 third_party
的目录在许多项目中很常见。
通常,外部库存储在外部。即在项目之外。
不同的系统有不同的约定。例如,在 POSIX 系统上,库档案通常存储在 /usr/lib 和 headers 中 /usr/include。此类外部库通常使用系统提供的包管理器进行安装。使用系统提供的库(除了它们的位置和管理是特定于系统的)的缺点是有时您对获得的版本没有太多控制权。好处是通过动态链接共享库。
还有 cross-platform 库的包管理器,它们可以很好地与静态链接配合使用,并允许使用特定版本的库。这些包管理器也有自己的下载库的约定。