我正在为学校做一些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的制造手册,但没有什么能跳出来。