我正在开发一个C++库.最后,我想公开提供多个平台(至少Linux和Windows),以及一些示例和Python绑定.工作进展顺利,但目前该项目非常混乱,仅针对Visual C++构建,而不是多平台构建.
因此,我觉得清理是有序的.我想改进的第一件事是项目的目录结构.我想创建一个适合Automake工具的结构,以便在多个平台上轻松编译,但我以前从未使用过这些.由于我仍然会在Visual Studio中进行(大部分)编码,因此我需要在某处保留我的Visual Studio项目和解决方案文件.
我试图像谷歌"C++库目录结构"这样的术语,但似乎没有任何用处.我找到了一些非常基本的指导方针,但没有明确的解决方案
在查看一些开源库时,我想出了以下内容:
\mylib
\mylib <source files, read somewhere to avoid 'src' directory>
\include? or just mix .cpp and .h
\bin <compiled examples, where to put the sources?>
\python <Python bindings stuff>
\lib <compiled library>
\projects <VC++ project files, .sln goes in project root?>
\include?
README
AUTHORS
...
Run Code Online (Sandbox Code Playgroud)
我以前没有/很少有多平台开发/开源项目的经验,我很惊讶我找不到关于如何构建这样一个项目的任何好的指导.
人们应该如何构建这样的图书馆项目?建议阅读什么?有一些很好的例子吗?
这个问题主要涉及Unix/Linux风格的C++开发.我看到许多C++ 库将其头文件存储在"include"文件夹中,源文件存储在"src"文件夹中.为了一致性,我在自己的代码中采用了这个.但是我不清楚是否应该对应用程序代码进行此操作.我已经看过一些使用平面目录结构的情况.推荐的方法是什么?
使用Makefile的大型C++项目有什么好的目录结构?
这就是我的目录结构当前的样子:
lib/ (class implementations *.cpp)
include/ (class definitions *.h)
tests/ (main.cpp for quick tests)
Run Code Online (Sandbox Code Playgroud)
现在,我不确定我的Makefile应该是什么样子......当.cpp文件和.h文件不在同一目录中时,它似乎不起作用.任何人都可以指向一个带有Makefile的公共目录结构,这样我就不会重新发明轮子了吗?