我有一个 C 程序,它是由一位离开的开发人员传给我的。我试图弄清楚他到底在做什么,并将软件重新安排成更合乎逻辑的东西,这样我就可以更容易地构建它。我使用 CMake 构建,而他使用 Make。
有一个 src/ 文件夹,其中包含多个源文件,其中大约 4 个具有 main() 方法。具有 main() 方法的文件在文件中的命名更像是实用程序、工具或其他任何东西。这让我觉得很奇怪,因为他还有一个 lib 文件夹,里面还有一些其他的东西,它们是构建的,看起来更像是库。我是否应该将这些主要方法拆分为“驱动程序”源文件,并将这些文件中也定义的方法设为其他库?如果我这样做,我知道如何让 CMake 去寻找一个库并构建并将它链接到驱动程序以执行。
如果在 src 文件夹中构建那些“库”源文件是可以接受的,我应该设置 CMake 以一次构建该文件夹中的所有内容,还是应该创建一个目录结构以至少进行一些逻辑分离?
就像一个想法,这是当前的目录结构
project
.../src
......file1.c
......file2.c <-has a main() as well as other methods
......file3.c
......file4.c <- has a main() as well as other methods
......file5.c
.../lib
....../lib1
........./file1.c <-references top level include folder files
........./file2.c
....../lib2
........./file1.c <-refs top level and local include files
........./file2.c
........./file2.h
.../scripts
.../include
.
.
.
任何有关重组此构建或在 CMake 中配置它的最佳实践的建议都值得赞赏。