我想用c++编写一个小库,然后“编译”它,并将它作为一个.hpp文件发布。不过,我想不出从代码库创建单个.hpp文件的简单方法。
我正在尝试做一些类似于catch.hpp的东西。当我看他们的代码库时,他们似乎在做类似的事情。它们似乎拥有大量的.h和.cpp文件集合,然后用于生成.hpp文件。
我希望我的项目结构看起来如下所示:\
folder
- src
- something.h
- something.cpp
- another_thing.h
- another_thing.cpp
- tests
- something_tests.cpp
- another_thing_tests.cpp
- console_app
- main.cpp
我想创建一个makefile并运行一些命令:
make library
=>创建包含src文件夹中所有内容的library.hpp。make tests
=>运行测试make console
=>创建library.hpp,然后在console_app文件夹中编译main.cpp
我通常知道如何做make测试,但是我不知道如何从src文件夹创建一个hpp文件。
发布于 2022-06-11 21:13:54
@UnholySheep的答案如下:
catch.hpp是通过脚本生成的:github.com/log4cplus/Catch/blob/…,它实际上只是将所有文件连接到一个文件中。
与法比安的回答成对:
甚至不要开始只在头库中添加
.cpp
文件。cpp文件中通常不能只在头库中执行,例如非内联函数定义等,如果库包含在多个二进制转换单元中,则很容易导致名称冲突。此外,我不认为把所有东西都放在一个头文件中是有益的;这只会使找到东西变得几乎不可能:没有人想在你的50k的loc文件中搜索他们正在寻找的东西。
我已经确定了最好的解决方案是首先在.hpp文件中编写代码。然后编写一个脚本,将所有.hpp文件连接到一个文件中。文件结构如下所示:
folder
- src
- something.hpp
- another_thing.hpp
- tests
- something_tests.cpp
- another_thing_tests.cpp
- console_app
- main.cpp
- library_gen_script.sh
然后脚本library_gen_script.sh将只包含逻辑,将src文件夹中的所有内容打包到一个.hpp文件中。
https://stackoverflow.com/questions/72587313
复制相似问题