2009-08-31 58 views
2

我從生成系統生成VisualStudio C++項目文件。 項目文件的XML中的編譯器選項與爲編譯器指定的命令行選項格式不同。在VisualStudio中生成選項的最佳方法項目文件

我需要從命令行選項來獲得cl.exe時爲VCCLCompilerTool項目文件的選項。

1 - 有沒有人知道開源腳本的設計目的是爲了做到這一點?

2 - 如果一個將刪除XML的所有選項,並把所有的命令行選項進入「AdditionalOptions」屬性,它會過濾這些,或者把一切都放在那裏添加到命令行逐字?如果UI中存在選項,「AdditionalOptions」是否會覆蓋默認值? (我沒有帶書面的代理cl.exe時要考什麼,它實際上在這種情況下:)

由於得到!!!!

回答

4

一種解決方案可能是使用Property Sheets(vsprops)。你可以爲你打算使用的每個選項生成一個vsprops文件(這是從visual studio中的屬性表編輯器完成的)。然後在生成的項目文件中引用每個屬性表,其中包含您打算在InheritedPropertySheets部分中使用的選項。我們通過將各種選項分組到相關的紙張表格中來做類似的事情。例如,我們使用以下幾組屬性表:

ARMASM.rules 
C++ Standards Compliance.vsprops 
Debug Program Database.vsprops 
Debug.vsprops 
Multi-Threaded Debug Libraries.vsprops 
Multi-Threaded Release Libraries.vsprops 
Optimize for Size.vsprops 
Platform Directory.vsprops 
Release.vsprops 
Static Library.vsprops 
Strictest Warnings.vsprops 
Win32.vsprops 
WinCE.vsprops 
+0

謝謝,是的,屬性表適用於分解多個.vcproj共有的東西。它們是.vcproj文件本身的*相同*格式。問題是,「cl.exe」編譯器的命令行參數採用了不同的格式。 VStudio有一個從.vcproj格式(XML屬性)到命令行格式的內部翻譯器,用於它支持的各種工具。我想知道是否有人對.vcproj格式轉換器執行了命令行格式,反之亦然,或者是否有可維護的簡單方法來執行此操作。 – 2009-09-09 21:25:30

+0

非常有趣。如果我想將openssl的fipslink.pl腳本集成到我的fips兼容exe文件中,我會用宏語言重寫perl腳本。謝謝。我希望這很好地支持正則表達式。 – 2010-02-05 22:08:48

+0

如何將.rules文件合併到.vsprops文件中?這裏有一個賞金問題在這裏:http://stackoverflow.com/questions/1623609/vs2008-add-custom-build-rule-to-a-property-sheet-vsprops – shoosh 2010-03-25 08:24:03

相關問題