gpt4 book ai didi

c++ - $(OutDir) 未设置为项目输出目录

转载 作者:行者123 更新时间:2023-11-30 04:06:25 25 4
gpt4 key购买 nike

我在 Visual Studio 2013 中有一个 C++/CLI dll 项目,我试图在其中更改输出目录。我已将项目属性 > 常规中的“输出目录”设置设置为 $(SolutionDir)Stage\$(Configuration)\bin$(PlatformArchitecture)\。我可以在 vcxproj 文件中看到这反射(reflect)到 OutDir:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<OutDir>$(SolutionDir)Stage\$(Configuration)\bin$(PlatformArchitecture)\</OutDir>
</PropertyGroup>

然而,它似乎并没有真正被使用。在 Linker > General > Output File 下,默认值为 $(OutDir)$(TargetName)$(TargetExt),但在 Command 下看到的是 $(OutDir) 的扩展值行并没有反射(reflect)我所做的更改,而是它似乎具有值 $(SolutionDir)Stage\$(ConfigurationName) ($(ConfigurationName) 是例如“调试_x64”)。这很奇怪,因为它不存在于 vcxproj 文件中......

我需要做什么才能使输出目录中的更改影响 $(OutDir)?我还注意到有一个宏 $(OutDirWasSpecified),它的值为 false...

最佳答案

我相信 $(OutDir) 通常在文件中设置:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\Microsoft.Cpp.x64.default.props

或者,如果在 32 位平台上:

...\Win32\Microsoft.Cpp.Win32.default.props

通常,您会在项目文件中找到:

我的项目.vcxproj

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

如果您找到 Microsoft.Cpp.Default.props 文件,它将包含:

 <!-- Allow platforms to define the defaults first -->
<Import Condition="Exists('$(VCTargetsPath)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props')" Project="$(VCTargetsPath)\Platforms\$(Platform)\Microsoft.Cpp.$(Platform).default.props"/>

这是引入 $OutDir 的地方。

似乎这个包含链在某种程度上被破坏了,或者 $(OutDir) 的原始定义在文件 Microsoft.Cpp.x64.default.props 中被删除/修改了

关于c++ - $(OutDir) 未设置为项目输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com