Visual C ++依赖关系解决方案构建或发现

时间:2013-01-24 18:26:15

标签: visual-c++ build dependencies solution discovery

想象一下这个场景:

 L

 ^^

 | \

 |  D

 |  ^ 

 | /

  X

其中X是可执行文件,D是DLL,L是Lib。箭头表示“取决于”。

我对L的源代码进行了更改。当我尝试编译并运行X时,正在执行的代码是L的OLD代码。这是因为,当链接X时,它首先吸收D代码,并且它看到D已经有L的代码,并且不会与L的新代码链接。

我有一个问题,就是不知道我需要重建什么。如果我要创建一个我的代码库的图形,那将是一个非常复杂的具有很多依赖性的图形。有没有办法构建依赖于X的解决方案?或至少,发现它们。

因为,现在我正在解决这个问题:

1)尝试手动了解X的依赖关系。这是非常烦人和不确定的。对于我在上面描述的情况,我多次失败。

2)我有一个脚本可以重新编译我的代码库的所有内容。有许多与X无关的解决方案。这需要大量的时间和资源,不必要。

重要说明:项目位于不同的解决方案中,不能合并为一个。代码库非常庞大,我们不希望它具有较少的模块性。

1 个答案:

答案 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。