C++:如何构建我自己的实用程序库?
Posted
技术标签:
【中文标题】C++:如何构建我自己的实用程序库?【英文标题】:C++: how to build my own utility library? 【发布时间】:2010-12-21 05:00:32 【问题描述】:我开始对 C++ 足够精通,因此我可以编写自己的基于 C++ 的脚本(以替换我以前编写的 bash 和 php 脚本)。
我发现我开始收集非常少的实用函数和子例程,我想在几个原本不相关的 C++ 脚本中使用它们。
我知道我不应该重新发明***,并且我可以将外部库用于我为自己创建的一些实用程序。但是,创建自己的实用程序函数很有趣,它们完全适合我的工作,而且对我来说是学习过程的很大一部分。当我足够熟练地从事更严肃的长期项目时,我会看到使用更完善的外部库。
所以,问题是:我如何管理我的个人实用程序库,以使这些功能可以轻松地包含在我的各种脚本中?
我正在使用 linux/Kubuntu、vim、g++ 等,主要是编写 CLI 脚本。
不要在经验方面假设太多! ;) 欢迎提供指向教程或适当记录相关主题的地方的链接。
【问题讨论】:
【参考方案1】:"Shared objects for the object disoriented!"
"Dissecting shared libraries"
【讨论】:
【参考方案2】:只需将您的 hpp
和 cpp
文件放在不同的目录中即可。这样,很容易将包含 C++ 文件的目录添加到任何新项目中,并且很容易将标头添加到包含路径中。
如果您发现编译时间开始受到影响,那么您可能需要考虑将这些文件放在静态库中。
【讨论】:
【参考方案3】:如果您是手动编译,您将需要创建一个 makefile 来消除编译库的乏味。 This 教程在我学习做你正在做的事情时帮助了我,并且它在网站上提供了有关 makefile 的更详细教程的其他链接。
【讨论】:
谢谢。我已经在使用makefile,现在是cmake。欢迎来到 ***!我为你的博客添加了书签:看起来很有趣。 +1:这是你的前十点:)【参考方案4】:除非它非常大,否则您可能应该将实用程序库保存在 .h
文件(用于声明)和 .cpp
文件(用于实现)中。
只需将这两个文件复制到您的项目文件夹中并使用#include "MyLibrary.h"
,或设置适当的目录设置以便您可以使用#include <MyLibrary.h>
,而无需在每次要使用它们时复制文件。
如果库变得相当大,您可以考虑研究静态库。
【讨论】:
以上是关于C++:如何构建我自己的实用程序库?的主要内容,如果未能解决你的问题,请参考以下文章
在我构建 Android 时的 Expo(未找到 `keytool` 实用程序)
是否有用于将 NMAKE 构建文件转换为 CMAKE 构建文件的转换实用程序?
如何将实用程序.java 作为文件夹放入库中,以便可以将其方法用于多个 java 项目?