說到Visual Studio,我不喜歡你建議的兩種方法中的任何一種,儘管我的方法與你的方案#2關係最密切。我想組織它是這樣的方式:
<SolutionRoot>
<Project1>
project1.vcxproj
someheader.h
somesource.cpp
<Project2>
<Project3>
<Project4>
<Project5>
application.sln
萬一這不是很明顯,這是一個準目錄列表顯示一些項目的文件夾和鹼溶液文件。
所有新項目都只是使用Visual Studio的默認設置添加到解決方案中。試圖違背這一點,使項目像Linux項目一樣工作(lib
,include
,src
等)只是最終導致你的悲傷,所以不要這樣做。
現在,我在每個項目上設置我的「額外包含」路徑爲$(SolutionDir)
。然後,如果我想包括從PROJECT1東西:
#include "Project1/someheader.h"
這樣做的好處是,你不要弄亂你的「額外包括」,所以很容易一眼看出什麼外部包括的項目有。
至於鏈接到lib文件,爲什麼不利用Visual Studio的項目引用功能。老實說,你的生活會更容易。只需將它連接起來,以便Project2引用Project1,等 ...然後,您不必擔心庫和鏈接器路徑。您僅針對解決方案樹之外的工具包(例如,例如分發,例如libpng或openssl)。
同樣,您可以釋放該設置,使其僅顯示解決方案之外的鏈接。另一個好處是如果你使用引用,你的構建順序是隱式定義的。