2013-01-24 36 views
1

想象一下場景:的Visual C++依賴的解決方案建立或發現

L 

^^ 

| \ 

| D 

|^

|/

    X 

其中X是一個可執行文件,d是一個DLL,一個L是一個庫。箭頭的意思是「依賴於」。

我做了L的源改變當我試圖編譯和運行X,這是執行爲L的OLD碼即是因爲,連接X時,首先吸收d碼的碼,並且它看到D已經有了L的代碼,並且不會與新的L代碼鏈接。我有問題不知道我需要重建什麼。如果我要製作一個我的代碼庫的圖,那將會是一個非常複雜的依賴關係。有沒有辦法構建依賴於X的解決方案?或者至少,發現它們。

因爲,現在我解決這個這樣:

1)試試就知道了什麼是人工的依賴,以X。這是非常煩人和不確定的。我多次談到我在上面描述的情況。

2)我有一個腳本,重新編譯我的代碼庫的一切。有很多很多解決方案與X無關。這會花費大量時間和資源,不必要的。

重要提示:項目採用單獨的解決方案,不能合併爲一個。代碼庫非常龐大,我們不希望模塊化程度較低。

回答

0

由於您表示無法編輯您的依賴關係,因此我會退出M $工具鏈並嘗試使用g++,您只需在Visual Studio項目中爲其提供包含路徑即可。它有一個命令行開關,爲每個給定的源文件生成一個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這是個好主意。或者一個明暗。

+0

謝謝,但不是有效的解決方案。我們擁有20多年前開發的完整代碼庫,我們完全不可能改變工具鏈。 – sergiol

相關問題