Visual Studio 2008のコンパイルプロセスで使用されるライブラリのパスを外部化する方法はありますか?* .propertiesファイルのように?
私の目標は、Java用のAntビルドシステムで使用される* .propertiesファイルのように、ヘッダーファイルとライブラリへの場所を参照する「変数」を定義することです。
Visual Studio 2008のコンパイルプロセスで使用されるライブラリのパスを外部化する方法はありますか?* .propertiesファイルのように?
私の目標は、Java用のAntビルドシステムで使用される* .propertiesファイルのように、ヘッダーファイルとライブラリへの場所を参照する「変数」を定義することです。
私はあなたがファイルを探していると思い.vsprops
ます。これらは*.propertiesファイルに相当します。
環境変数?
適切な層で許可されているすべての$(xyz)置換はであり、「自分で持参」することが許可されています。
これらは通常、親プロセスから継承されるため、設定できます
#includesの場所に影響を与えることについて言及している場合は、プロジェクトのプロパティ|構成のプロパティ| C / C++/追加のインクルードディレクトリがチケットです。プロジェクトプロパティ|共通プロパティ|追加の参照検索パスもあります。
Antの場合と同じように、VCProjファイルの内容をどのようにパラメーター化するかという質問の場合、答えは、VS2010ではVCプロジェクトはMSBuildベースであるのに対し、VS2008vcprojファイルは独自のXMLベースの形式であるということです。他の回答によると、それらには類似のプロパティ機能があります]。
詳細情報がない場合、あなたがしていることの標準的なアプローチは、最初または2番目の段落に検索パスを追加することであると確信しています。
Antがどのように機能するかはわかりませんが、静的ライブラリとヘッダーについては.vcproj
ファイルを編集できます。これらは実際にはXMLファイルです。ライブラリは、AdditionalDependenciesのVCLinkerToolツールタグに配置されます
<Tool
Name="VCLinkerTool"
AdditionalOptions=" /subsystem:windowsce,5.01"
AdditionalDependencies="iphlpapi.lib commctrl.lib coredll.lib"
/>
追加のヘッダーパスは、AdditionalIncludeDirectoriesのVCCLCompilerToolツールタグで定義されます。
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="dev\mydir"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
/>
注意してください。ビルド構成ごとにそのようなセクションが1つあります。これはあなたが探しているものですか?
編集:.vsprops
MSaltersによって提案されたものはより強力です。それらに追加の依存関係とライブラリを定義して、プロジェクトにこれらのプロパティを継承させることができます。さて、今日は何か役に立つことを学びました!
CMakeのようなビルドシステムを使用できます。CMakeにプロジェクトの高レベルの説明を与えると、別のツール(Visual StudioのIDEやUnixスタイルのmakefileなど)を介してプロジェクトを正しくビルドするために必要なファイルが吐き出されます。
パス: CMakeList.txt構成ファイルのCMakeINCLUDE_DIRECTORIES()
とコマンドを使用して、これらのパスを指定できます。LINK_DIRECTORIES()
CMakeには、環境の両方の側面(多くは自動検出可能、たとえばCコンパイラーを実行するコマンド)を記述する変数と、ユーザーが直接指定できるようにするオプションがあります。CMAKE_C_COMPILER
すべての変数は、個別のプレーンテキスト構成ファイルCMakeCache.txtに保存され、テキストエディターまたは特別なGUI構成ツールを使用して編集できます。
CMakeには、多くの有用なライブラリの場所を自動検出する機能や、CONFIGURE_FILE()
コマンドを使用してCMakeディレクティブを含む「テンプレート」ファイルからカスタマイズされたソース/ヘッダーファイルを生成する機能など、他の多くの機能があります。
利点:
make
たとえば、の単純な使用とは異なります)。短所: