title: "同一Solution下,多個(gè)project之間依賴方法"
date: 2017-12-21
tags: ["visual c++"]
如果要開發(fā)一個(gè)靜態(tài)庫(kù)(例如test.lib),調(diào)試靜態(tài)庫(kù)的話可以寫一個(gè)控制臺(tái)應(yīng)用(例如apptest.exe)。這時(shí)候需要建立兩個(gè)Project。為了方便調(diào)試,可以把這兩個(gè)Project放到同一個(gè)Solution下。這樣靜態(tài)庫(kù)有任何變化,在應(yīng)用里就可以馬上感知到,快速的進(jìn)行修改對(duì)應(yīng)。
這樣的需求該如何配置Project的屬性呢。
1. 首先應(yīng)用程序的代碼要能夠找到靜態(tài)庫(kù)的頭文件。
我們看一下Solution的目錄結(jié)構(gòu):
solution/
solution/apptest/
solution/apptest/apptest.cpp
solution/test/
solution/test/test.h
solution/test/test.cpp
solution/debug/
solution/solution1.sln
- 為了讓
apptest.cpp能夠引用到test.h,可以把solution目錄添加到apptest project的include path里,具體方法:打開apptest的項(xiàng)目屬性設(shè)置頁(yè)面,Configuration Properties -> VC++ Directories,設(shè)置Include Directories為$(SolutionDir);$(IncludePath) - 在
apptest.cpp使#include <test/test.h>來(lái)引入test.h。
2. 設(shè)置Project的依賴和庫(kù)路徑,保證鏈接成功
- 設(shè)置依賴庫(kù)的路徑:
打開apptest的項(xiàng)目屬性設(shè)置頁(yè)面,Configuration Properties -> VC++ Directories,設(shè)置Library Directories為$(SolutionDir)debug;$(LibraryPath)。上面加入$(SolutionDir)debug的原因是,test project編譯出的靜態(tài)庫(kù)會(huì)放到solution/debug目錄下。 - 經(jīng)過設(shè)置鏈接仍然出錯(cuò),還需要設(shè)置project的依賴,方法是在apptest project的右鍵菜單上選擇 Add -> Reference...,在彈出的對(duì)話框里選中test。
經(jīng)過上面的設(shè)置,就可以讓apptest編譯通過了。