我正在查看我的Visual Studio项目的属性,看到了以下内容:
$(OutDir)\$(ProjectName).exe
我想知道 Visual Studio 是如何知道 outdir 的值的,我应该如何查看这个值。此外,$(OutDir)\$(ProjectName).exe 是哪种语言写成的,例如 C#、Python 等?换句话说,它是用什么语言编写的?
我正在查看我的Visual Studio项目的属性,看到了以下内容:
$(OutDir)\$(ProjectName).exe
我想知道 Visual Studio 是如何知道 outdir 的值的,我应该如何查看这个值。此外,$(OutDir)\$(ProjectName).exe 是哪种语言写成的,例如 C#、Python 等?换句话说,它是用什么语言编写的?
$(OutDir)
是Visual Studio构建属性宏。
您可以使用许多属性对话框中的Macros >>按钮查看宏的值。
例如,在属性->常规->输出目录中,单击值文本框中的下拉框,选择编辑...,然后在弹出的对话框中单击Macros >>按钮。这将为您提供所有宏及其当前值的列表。
$(OutputDir)
应设置为当前配置的输出目录,例如:$(SolutionDir)/$(Configuration)\
。
请注意,Windows环境变量作为构建属性宏导入到您的项目中,因此在宏列表中您会看到,例如,$(Path)
、$(HOME)
、$(TEMP)
。
这些是MSBuild属性。它们可以是用户定义的或环境变量。
您可以修改文件 the_name_of_your_prog.VCPROJ
(例如:ttfmfc)
并将 $(SolutionDir)$(ConfigurationName)
和 $(SolutionDir)
替换为 F:\debug(F:\debug 在 RAM 磁盘或任何其他文件夹中)
在下面的示例中,仅更改了调试配置:
Visual Studio 2008
将每个 [ 替换为 (小于号),将每个 ] 替换为 (大于号)
[?xml version="1.0" encoding="Windows-1252"?]
[VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="ttsmfc"
ProjectGUID="{0B52B3C5-7AD5-4780-92E9-98674E486261}"
RootNamespace="ttsmfc"
Keyword="MFCProj"
TargetFrameworkVersion="196613"
]
[Platforms]
[Platform
Name="Win32"
/]
[/Platforms]
[ToolFiles]
[/ToolFiles]
[Configurations]
[Configuration
Name="Debug|Win32"
OutputDirectory="F:\Debug"
IntermediateDirectory="F:\Debug"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1"
]
[Tool
Name="VCPreBuildEventTool"
/]
[Tool
Name="VCCustomBuildTool"
/]
[Tool
Name="VCXMLDataGeneratorTool"
/]
[Tool
Name="VCWebServiceProxyGeneratorTool"
/]
[Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName="f:\Debug/ort.tlb"
HeaderFileName=""
/]
[Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile="F:\Debug/ort.pch"
AssemblerListingLocation="F:\Debug/"
ObjectFile="F:\Debug/"
ProgramDataBaseFileName="F:\Debug/"
WarningLevel="3"
DebugInformationFormat="4"
/]
[Tool
Name="VCManagedResourceCompilerTool"
/]
[Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1036"
AdditionalIncludeDirectories="$(IntDir)"
/]
[Tool
Name="VCPreLinkEventTool"
/]
[Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib"
LinkIncremental="2"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
/]
[Tool
Name="VCALinkTool"
/]
[Tool
Name="VCManifestTool"
/]
[Tool
Name="VCXDCMakeTool"
/]
[Tool
Name="VCBscMakeTool"
/]
[Tool
Name="VCFxCopTool"
/]
[Tool
Name="VCAppVerifierTool"
/]
[Tool
Name="VCPostBuildEventTool"
/]
[/Configuration]
[Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
UseOfMFC="2"
CharacterSet="1"
WholeProgramOptimization="1"
]
[Tool
Name="VCPreBuildEventTool"
/]
[Tool
Name="VCCustomBuildTool"
/]
[Tool
Name="VCXMLDataGeneratorTool"
/]
[Tool
Name="VCWebServiceProxyGeneratorTool"
/]
[Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
ValidateParameters="true"
/]
[Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
MinimalRebuild="false"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
WarningLevel="3"
DebugInformationFormat="3"
/]
[Tool
Name="VCManagedResourceCompilerTool"
/]
[Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1036"
AdditionalIncludeDirectories="$(IntDir)"
/]
[Tool
Name="VCPreLinkEventTool"
/]
[Tool
Name="VCLinkerTool"
AdditionalDependencies="winmm.lib"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/]
[Tool
Name="VCALinkTool"
/]
[Tool
Name="VCManifestTool"
/]
[Tool
Name="VCXDCMakeTool"
/]
[Tool
Name="VCBscMakeTool"
/]
[Tool
Name="VCFxCopTool"
/]
[Tool
Name="VCAppVerifierTool"
/]
[Tool
Name="VCPostBuildEventTool"
/]
[/Configuration]
[/Configurations]
[References]
[/References]
[Files]
[Filter
Name="Fichiers sources"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
]
[File
RelativePath=".\Buffer.cpp"
]
[/File]
[File
RelativePath=".\ChangeRes.cpp"
]
[/File]
[File
RelativePath=".\errorprint.cpp"
]
[/File]
[File
RelativePath=".\MainFrm.cpp"
]
[/File]
[File
RelativePath=".\Mot.cpp"
]
[/File]
[File
RelativePath=".\Pipe.cpp"
]
[/File]
[File
RelativePath=".\PtrFifo.cpp"
]
[/File]
[File
RelativePath=".\Reco.cpp"
]
[/File]
[File
RelativePath=".\SoundBase.cpp"
]
[/File]
[File
RelativePath=".\SoundFile.cpp"
]
[/File]
[File
RelativePath=".\SoundIn.cpp"
]
[/File]
[File
RelativePath=".\SoundOut.cpp"
]
[/File]
[File
RelativePath=".\stdafx.cpp"
]
[FileConfiguration
Name="Debug|Win32"
]
[Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/]
[/FileConfiguration]
[FileConfiguration
Name="Release|Win32"
]
[Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/]
[/FileConfiguration]
[/File]
[File
RelativePath=".\ttsmfc.cpp"
]
[/File]
[File
RelativePath=".\ttsmfcDoc.cpp"
]
[/File]
[File
RelativePath=".\ttsmfcView.cpp"
]
[/File]
[File
RelativePath=".\vegView.cpp"
]
[/File]
[/Filter]
[Filter
Name="Fichiers d'en-tête"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
]
[File
RelativePath=".\Buffer.h"
]
[/File]
[File
RelativePath=".\errorprint.h"
]
[/File]
[File
RelativePath=".\fister.h"
]
[/File]
[File
RelativePath=".\MainFrm.h"
]
[/File]
[File
RelativePath=".\Mot.h"
]
[/File]
[File
RelativePath=".\Pipe.h"
]
[/File]
[File
RelativePath=".\PtrFifo.h"
]
[/File]
[File
RelativePath=".\Reco.h"
]
[/File]
[File
RelativePath=".\Resource.h"
]
[/File]
[File
RelativePath=".\SoundBase.h"
]
[/File]
[File
RelativePath=".\SoundFile.h"
]
[/File]
[File
RelativePath=".\SoundIn.h"
]
[/File]
[File
RelativePath=".\SoundOut.h"
]
[/File]
[File
RelativePath=".\stdafx.h"
]
[/File]
[File
RelativePath=".\targetver.h"
]
[/File]
[File
RelativePath=".\ttsmfc.h"
]
[/File]
[File
RelativePath=".\ttsmfcDoc.h"
]
[/File]
[File
RelativePath=".\ttsmfcView.h"
]
[/File]
[File
RelativePath=".\type.h"
]
[/File]
[File
RelativePath=".\vegView.h"
]
[/File]
[/Filter]
[Filter
Name="Fichiers de ressources"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
]
[File
RelativePath=".\res\Toolbar.bmp"
]
[/File]
[File
RelativePath=".\res\ttsmfc.ico"
]
[/File]
[File
RelativePath=".\ttsmfc.rc"
]
[/File]
[File
RelativePath=".\res\ttsmfc.rc2"
]
[/File]
[File
RelativePath=".\res\ttsmfcDoc.ico"
]
[/File]
[/Filter]
[File
RelativePath=".\ReadMe.txt"
]
[/File]
[/Files]
[Globals]
[Global
Name="RESOURCE_FILE"
Value="ttsmfc.rc"
/]
[/Globals]
[/VisualStudioProject]
set
来获取列表。你也可以右键单击桌面上的“计算机”图标,选择“属性”,在新窗口中点击左侧边栏中的“高级系统设置”,然后在“高级”选项卡中,点击“环境变量”按钮。 - pb2qECHO $(OutputDir)
。2)作为程序输出的一部分打印:这将取决于您的环境/语言。但是,如果这些宏是像我的答案中建议的那样的环境变量,则可以使用C API,查看getenv
和相关函数。我还建议在SO上创建一个新的顶级问题,并提供您的具体信息。 - pb2q