在哪里放置外部库

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.

使用名为 externalthird_party 的目录在许多项目中很常见。

通常,外部库存储在外部。即在项目之外。

不同的系统有不同的约定。例如,在 POSIX 系统上,库档案通常存储在 /usr/lib 和 headers 中 /usr/include。此类外部库通常使用系统提供的包管理器进行安装。使用系统提供的库(除了它们的位置和管理是特定于系统的)的缺点是有时您对获得的版本没有太多控制权。好处是通过动态链接共享库。

还有 cross-platform 库的包管理器,它们可以很好地与静态链接配合使用,并允许使用特定版本的库。这些包管理器也有自己的下载库的约定。