想象一下这个场景:
L
^^
| \
| D
| ^
| /
X
其中X是可执行文件,D是DLL,L是Lib。箭头表示“取决于”。
我对L的源代码进行了更改。当我尝试编译并运行X时,正在执行的代码是L的OLD代码。这是因为,当链接X时,它首先吸收D代码,并且它看到D已经有L的代码,并且不会与L的新代码链接。
我有一个问题,就是不知道我需要重建什么。如果我要创建一个我的代码库的图形,那将是一个非常复杂的具有很多依赖性的图形。有没有办法构建依赖于X的解决方案?或至少,发现它们。
因为,现在我正在解决这个问题:
1)尝试手动了解X的依赖关系。这是非常烦人和不确定的。对于我在上面描述的情况,我多次失败。
2)我有一个脚本可以重新编译我的代码库的所有内容。有许多与X无关的解决方案。这需要大量的时间和资源,不必要。
重要说明:项目位于不同的解决方案中,不能合并为一个。代码库非常庞大,我们不希望它具有较少的模块性。
答案 0 :(得分:0)
由于您表明您无法编辑您的依赖项,我会离开M $工具链并尝试使用g++
,您只需在其中提供您在Visual中包含的包含路径工作室项目。它有一个命令行开关,为每个给定的源文件生成make
文件规则。这个makefile可以成为你所依赖的线索。
> g++ -I ./lib1 -MM *.cpp
x.o: x.cpp a.h lib1/lib1.h
y.o: y.cpp a.h
如果您只搜索X的直接依赖关系,那么这样做。如果你知道足够多的gnu工具,你可以sort
通向依赖的路径,并且你准备好了:)。
然后,当然,您仍然必须为项目X填写这些依赖项。
使用cygwin可能是个好主意。或者mingw。