最進要用vs建立一個解決方案,同時也要依賴一些第三方庫,為了以后便於維護,因此想讓解決方案的各個文件夾的組織更加合理。通過網上搜索一些網友的解決方案,發現大致可以分為兩種,分別參見網址https://blog.csdn.net/lp310018931/article/details/47991759和https://www.cnblogs.com/zuibunan/p/3843459.html,姑且叫他們方案A和方案B。截屏自上面兩個網址,方案A和方案B的目錄組織可以圖示如下。
方案A:
方案B:
可見,方案A和方案B的主要有兩點不同,1、解決方案sln文件的位置,2、第三方庫的位置。
方案A的sln文件及project文件位於最外層,而方案B多了一個src文件夾,sln文件及project文件位於該文件夾內。方案A依賴的第三方庫分布在include、bin、lib目錄中,而方案B有一個3rd文件夾專門用於存放第三方庫的東西。
綜合上述兩種方案,決定sln文件的位置采用方案B的,這樣的話即使有很多個project,最頂層還是那幾個目錄,不會顯得亂。而第三方庫的位置,采用方案B的,但是在include和lib文件中,都放到相應的以庫名字命名的文件夾下,方便管理,而bin文件則直接放到bin下的當前配置文件夾下。
假設當前sln文件名為test,有A.exe和B.dll兩個項目,依賴於X.dll和Y.dll兩個第三方庫,那么目錄的組織如下圖所示。
補充1:各位兄弟們,那個copy的問題我終於解決了,原來當目標路徑的文件夾不存在時,copy命令就不好用了,提示系統找不到指定的路徑。,把這句話:
copy $(TargetPath) $(SolutionDir)\Bin\$(ConfigurationName)\;
換成以下這句就OK了……
xcopy $(TargetPath) $(SolutionDir)\Bin\$(ConfigurationName)\
注意,命令變成了xcopy了,而且最后的分號去掉啦,之后即使Bin目錄下沒有Debug或Release目錄編譯器也會自動生成的!~