存储库的路径.需要最佳实践
Path to store libraries. Best practice needed
我计划在Linux下用C和C++做几个项目。在某些项目中,我需要额外的库。如果我错了,请纠正我。我打算将库存储在/usr/local/include
.但是将所有库混合在一个目录中是好的做法吗?也许最好在目录中创建库名称子目录/usr/local/include
?也许最好将标头和源存储在不同的目录中?需要最佳做法。
如何处理未编译的库,例如MiniIni
https://code.google.com/p/minini/。它带有头文件和C文件。我应该编译它并放入/lib
目录和标头以/include
.或者也许最好将所有内容都放在/include 中?
如果你谈论库,我假设你的意思是编译库(.so
文件或.a
文件)。这些应该进入/usr/local/lib/
.标题应该进入/usr/local/include
.源.cpp
文件通常不应放在安装中的任何位置。有时需要安装它们,以便可以按需重建它们(想到 dkms)。然后消息来源应该进入/usr/local/src/project_name/
.
我个人更喜欢将标头和库安装在 /usr/local/include
和 /usr/local/lib
的子目录中,但不是每个人都会同意。
/usr/local
前缀应始终可配置。虽然传统make install
应将其用作默认值,但发行版上的打包程序肯定会将其更改为直接安装到/usr
中。
我希望你不要将库存储在/usr/local/include 中。它们属于/usr/local/lib 或可能的/usr/local/lib64。
单个项目所需的标头不应进入/usr/local/include,它们应保留在项目中。只把东西放到/usr/local/lib 和/usr/local/include 中,如果你正在构建一个要包含在几个项目中的库。即便如此,我也会将标头保留在项目的本地,并且仅将它们复制到/usr/local/include 作为构建过程的一部分。
至于项目树中的相同目录或不同目录,这取决于项目的大小。我通常会在文件数量(源 + 包含)超过 20 时开始将内容移动到单独的目录中。
现在来谈谈使用子目录的问题。将所有库混合在一个目录中从来都不是一个好的做法。因此,更好的方法是拥有子目录,然后使用"相对"路径引用相应的文件。
我建议将所有库存储在自定义库目录中。
将LD_LIBRARY_PATH环境变量设置为此目录,如果使用 gcc,请使用 -L 选项(例如 minini)。
像这样,您的工作在您的系统中是非侵入性的,并且不会破坏它。
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- 在c代码之间共享数据的最佳方式
- 为Catch2中的外部文本文件指定路径的最佳方式
- 获取 exe 文件夹路径的最佳方法?
- 我该如何判断k-server动态解决方案的最佳路径以数组成本[i] [j] [k] [t]位于何处
- 保存使用递归回溯找到的最佳路径
- 确定两个文件路径引用同一文件对象的最佳方法是什么
- 存储库的路径.需要最佳实践
- 标题包含C++库中的路径-最佳实践
- 什么是适用于多个入口和多个出口的类似BFS的最佳路径算法
- 如何完善Dijkstra算法,而不是找到最佳路径
- 点 c++ 列表中的最佳路径
- 组织一个C++游戏的最佳方式是什么?该游戏涉及用户在路径之间进行选择,以便在旅程中前进
- 使用Dijkstra算法找到最佳路径的不可预测的结果
- 网格中的最佳路径
- 将filesystem::path元素附加到另一个路径的最佳方法是什么?