Visual Studio属性配置中使用宏
? ? ? 在Visual Studio中進(jìn)行C++工程屬性的配置時,同樣也會遇到與寫代碼類似的場景,例如我們可能會在不同的表單(同一個工程或者多個工程)中,填寫相同的內(nèi)容(例如某個路徑)。這樣就造成了一些重復(fù)性的勞動,而且填寫時可能因?yàn)槭韬龆斐慑e誤,修改時也需要找到所有填寫這個內(nèi)容的地方。為了解決這個問題,Visual Studio在工程屬性配置時,也提供了宏這樣一個工具,來幫助我們減少這些無謂的辛勞。
? ? ? C++工程屬性中的宏
? ? ? 工程屬性中的宏具體長得是什么樣子呢?在打開工程屬性時,我們在表單中可能經(jīng)常會看到一些以美元符號($)為開頭的字符串,$(SomeMacro)。其實(shí)這些字符串便是Visual Studio中默認(rèn)定義的一些宏,它們其實(shí)就是代表一些與某個工程相關(guān)的常量字符串。在下圖中我們可以看到一些這樣默認(rèn)定義的宏:
? ? ? 任意點(diǎn)擊一個表單,然后點(diǎn)擊Edit選項(xiàng),便可以在彈出的窗口中,查看這些默認(rèn)定義宏的含義。
? ? ? 注意到上面兩個宏進(jìn)行結(jié)合,對項(xiàng)目的輸出路徑(Output)進(jìn)行了配置,也就是項(xiàng)目生成exe、lib或dll的地方。Visual Studio中還有很多類似這樣的宏,有些宏還是和機(jī)器相關(guān)的,所以我們也可以利用其來進(jìn)行工程配置,避免因?yàn)椴煌瑱C(jī)器上路徑不同,而對每臺機(jī)器單獨(dú)配置一次屬性。對工程屬性中默認(rèn)定義的宏,微軟的官方指南上也有一個比較詳細(xì)的介紹。
http://msdn.microsoft.com/en-us/library/c02as0cs.aspx
? ? ? 自定義工程屬性中的宏
? ? ? 那么我們?nèi)绾巫约憾x工程屬性中的宏呢?首先我們需要打開屬性管理器選項(xiàng)卡(Property Manager),然后為工程添加一個屬性頁面(Property Sheet)。該屬性頁面在被添加后,會被當(dāng)前的工程屬性繼承,于是便可以使用其中定義的宏了。
? ? ? 以上添加了一個宏,代表使用OpenCV第三方庫的版本號,因?yàn)樵诘谌綆焐墪r,庫的名字也會隨版本號發(fā)生改變;而使用了宏后,我們就可以很方便的修改引用庫的名稱了。下面我們可以回到原來的工程屬性當(dāng)中來,利用上面的宏來動態(tài)確定引用庫的名稱。
? ? ? 我們可以看到,Linker當(dāng)中所展開的命令行參數(shù)中,$(OpenCVLibVersion)已經(jīng)被展開為245了。而以后在發(fā)生庫版本的升級時,便可以只修改$(OpenCVLibVersion)這個宏便可以正常使用升級后的庫了,所以這種方法還是很實(shí)用的吧。在工程屬性的配置中,宏的使用場景還有很多,如果能夠靈活使用,便可以節(jié)省很多的時間,避免很多因重復(fù)勞動所造成的錯誤。
總結(jié)
以上是生活随笔為你收集整理的Visual Studio属性配置中使用宏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 测试框架之GTest
- 下一篇: Gtest在vs 2010上的配置