在多个(密切相关的)项目中重复使用大量 C++ 文件,无需库,也无需每次都手动将文件添加到项目中。可能吗?

问题描述 投票:0回答:1

我有大量包含各种类别的

.h/.cpp
文件。 从包含工具的文件到包含项目需要处理的每种类型“问题”的类的文件。 这是一个不断增长的列表。

我还有几个项目依赖于大部分相同的代码(共享文件夹),并且仍然具有相当独特的功能和解决问题的方法。

许多年前,使用非常旧版本的 c++ Builder IDE,我将所有这些文件(.h 和 .cpp)组织在特殊的“容器”

.h/.cpp
文件中,这些文件仅链接到它们 (
#include
)。 例如 GUITools.h/.cpp 链接到一堆文件,EngineTools.h/.cpp 链接到一堆文件等等(你明白我的意思了)。

后来的文件是我添加到项目中的唯一文件。 这样 GUIools.obj、EngineTools.obj 等就会被构建。

这意味着我可以轻松地为新的“问题”创建一组新的文件/类,并将这些 (

#include
) 添加到一个 .h/.cpp 文件集中,并在所有项目中使用此更改/添加进行构建。

制作、构建、调试、跟踪等在每个项目中都工作得非常顺利,我可以轻松地处理任何项目,并在必要时对共享代码进行改进/修复。

事情在很长一段时间内运行良好,所以它不在需要改变或改进的事情清单上。 附言。我也长期使用某个特定版本的 IDE。

我现在使用 IDE/工具集的最新版本并保持最新状态。 与预期相反,现在编码不再那么有趣了。 我发现自己在构建而不是制作,因为 IDE/工具集无法区分哪个是哪个。 在调试过程中显示变量的内容通常会失败,因为调试器无法确定变量的类型。 诸如下划线错误、搜索问题等花哨功能无法正常工作。

这些项目构建得很好并且工作一如既往地稳定,但现在处理它们已经不再那么有趣了。

所以,我必须改变我的方式,在开始和彻底改革之前,我需要了解什么是可能的,什么是不可能的,我也很好奇其他人是否有类似的方法或根本没有。

我希望有一种方法可以将那些 5/6“容器”(又名添加到每个项目的 .h/.cpp 文件)替换为具有相同效果的其他类型文件,但这些文件会告诉 IDE 其中的文件是项目的一部分(以便它们都构建在自己的 obj 文件等中)。然后 Make 会再次变得闪电般快(并且工作,我希望)或者某种编译指示? 我真的不知道。

如果普遍的看法是每次都简单地将单个文件添加到项目中,那么我就会这样做(并且我会以这种方式组织自己)。

我只是想知道是否有更好的方法来共享代码(并且不使用库,因为这意味着更多的项目,并且意味着在项目之间切换以添加/修复库中的某些内容等)。

c++ c++builder
1个回答
0
投票

我真的不确定我的问题是否正确,但这里有一个建议(人们可能会觉得有点脏......)

它包括调整你的 Makefiles (/templates) 以添加一些目录(头文件 &&/|| 源文件),这些目录存储在 例如 env 指向的位置。名为“SHARED_CODE”的变量。 它可以成为您想要在其中使用共享代码的项目的 makefile 模板,反之亦然。

COMMON_INC := ${SHARED_CODE}/common_inc
COMMON_SOURCES_DIR1 :=${SHARED_CODE}/common_source_D1
...
(include?) initial makefile here, 
    supposing it cleans, compiles & links $(OBJECTFILES)
    adding CXXFLAGS to your CXX (g++?) command
...
OBJECTFILES += $(COMMON_SOURCES_DIR1:%.cpp=%.o)
CXXFLAGS += -I. -I$(COMMON_INC) 

希望它对您有所帮助,并且您会再次找到过去美好时光的所有乐趣。

© www.soinside.com 2019 - 2024. All rights reserved.