我正在为学校做一些 C 编程,我发现自己一遍又一遍地重用我创建的库(堆栈、用户输入、错误处理等)。
现在,我个人的 SVN 目录结构是这样的:
trunk/
|-- 2520
| `-- assignments
| |-- A2
| |-- Makefile
| |-- README
| |-- calculator.c
| |-- calculatorlib.c
| `-- calculatorlib.h
`-- libs
|-- misc
| |-- errorlib.c
| |-- errorlib.h
| |-- userinputlib.c
| `-- userinputlib.h
`-- stacks
|-- stacklib.c
`-- stacklib.h
出于显而易见的原因,其中一些文件(userinputlib 和 errorlib)几乎在我从事的每个项目中都会用到。我希望能够将这些文件包含在项目的工作区 (2520/assignments/A2) 中,而不必复制文件,因为我不想管理文件的副本,也不想签入两个副本SVN 中的同一个文件。
我想在项目工作区中有库文件,这样我的 Makefile 就可以工作,而无需进行太多手动配置(或硬编码路径)。
起初,我考虑了符号链接(SVN 和 tar 支持),但鉴于我在另一个目录中的标题,我似乎无法编译我的作业。
我可以手动将每个标头编译为目标文件并进行最终链接,但我不确定如何在 Makefile 中自动执行此操作。
对于我如何设置环境的任何帮助或任何替代方法,我们将不胜感激。
谢谢!
编辑:我忘了提到我已经搜索了谷歌并找到了一些描述自动依赖生成的页面(也许我想要这个?),gcc -MM
并且我已经阅读了 GNU Make 手册,但没有任何东西跳出来。