【讨论】VS C++代码管理的问题
我有一个自己编的动态库A,然后基于这个库的功能编了几个功能软件B C D……,也就是B C D都依赖于A,B C D经常需要改进升级,同时可能会对A做相应的改动。
为了保证A的唯一性并且方便调试,我现在是这么弄的:建立一个解决方案【S】,A B C D分别作为【S】中的4个项目。
这样做有几点好处:
1)跳转调试方便:比如我在开发升级B功能,但是发现需要对A进行扩展,这样在统一的解决方案中,可以方便的用F12在B和A的函数之间跳转,包括跟踪调试。
2)同步修改:接上例,如果A被改动了,我在编译的时候C D也会自动被编译为采用新版本的A。
现在发现的局限性:
1)系统复杂,容易出错:相当于编的所有的软件全部都在一个解决方案当中,随着新项目的增加,这个系统越来越复杂,而且互相之间要保持很好的兼容性。
2)移植性不好:我的程序结构是底层部分都在A里,表层部分在B C D里。比如B功能的底层支持需要一个第三方库LB,C功能需要一个第三方库LC,这样一来A就include并且在编译时链接LB和LC。问题来了,我在发布C软件时,运行会要求LB的存在。这意味着C的发布受到了B的拖累。
我也想过静态调用,但是还有一些其它原因制约了必须采用动态调用的方式,我无法解决更精细的编译控制(哪个静态哪个动态)。
请问大家,针对我的问题,有没有更好的项目代码的组织方式呢?