18

我正在尝试为SierraChart自定义研究编译 C++ 类型 .DLL 。(这是一个金融交易应用程序。)这是我得到的警告,我需要修复它,所以它都指向链接器输出值:

warning MSB8012:

TargetPath(C:\SierraChart\VCProject\Release\SCStudies.dll) does not match the Linker's 
OutputFile property value (c:\sierrachart\data\SCStudies.dll).

This may cause your project to build incorrectly. To correct this, please
make sure that $(OutDir), $(TargetName) and $(TargetExt)
property values match the value specified in %(Link.OutputFile).

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets

知道有什么问题吗?

4

8 回答 8

11

我相信在将 C++ 项目升级到 VS2010 时会特别出现此警告。Visual Studio 2010 C++ 项目升级指南描述了升级过程中遇到的一些注意事项。如果您不愿意更改项目设置,那么保留旧版本的 Visual Studio 可能对您有用。

要更改%(Link.OutputFile),请打开项目属性。导航到配置属性 -> 链接器 -> 常规。您可以将输出文件设置为$(OutDir)\SCStudies.dll,这应该可以解决您的问题。您可能需要为您将要构建的每个配置/风格(Debug/x86、Release/x86、Debug/Itanium 等)重复更改。

于 2012-02-14T15:08:32.517 回答
7

基于这个答案

我更改了以下属性:

链接器 -> 常规 -> 输出文件到“$(OutDir)$(TargetName)$(TargetExt)”

这阻止了警告出现,并且成功生成了输出。

于 2016-04-01T11:19:40.110 回答
1

原始配置设置如下:

属性 -> 链接器 -> 常规:$(OutDir)\"<'name fileA>".exe

程序尝试运行“ <'name_project>”.exe 并导致错误链接。

您需要将配置设置为:

属性 -> 链接器 -> 常规:$(OutDir)\"<'project name>".exe

于 2013-03-10T11:56:38.820 回答
1

其他人没有提到的另一个修复是,默认情况下 TargetExt 是.exe,对于我的调试版本,我将其更改为_d.exe,而您应该在 TargetName 路径中执行此操作。

于 2017-02-17T04:36:17.637 回答
0

看起来这对程序并不重要:

跟随自定义学习视频时出现奇怪的 Visual Studio 错误

于 2011-01-15T19:45:50.650 回答
0

Gerardo Hernandez 的评论帮助了我。

在 General->Output Directory 中指定的目录和在 Linker->Output File 的路径中指定的目录必须匹配。

就我而言,我是从 Visual Studio 6 导入一个大型项目,然后

C:\Project\myproject\OneOfMyDlls\.\Debug\OneOfMyDlls.dll

不等于

C:\Project\myproject\Debug\OneOfMyDlls.dll

C:\Project\myproject\OneOfMyDlls\..\Debug\OneOfMyDlls.dll

本来是,在路径减少之后。

问题是 Visual Studio 2017 导入已将输出目录从 假设非常规的父目录使用是错误的..\Debug.\Debug在一个拥有 13 个我们自己的 DLL 的大型项目中(更不用说第二方和第三方 DLL),将所有 DLL 收集在一个地方是有意义的,而且..\Debug是正确的。

因此,虽然其他人可能不得不更改Linker->Output File,但在我的情况下,General->Output Directory它需要更改,因为它已被从 Visual Studio 6 的导入损坏。

类似的东西在导入后..\Debug变成了类似的东西。.\Debug(实际的项目特定名称已被删除。)

于 2018-03-09T11:03:24.203 回答
0

如果像我一样,20 年后回到 Visual Studio,你可能不知道项目属性在哪里。在 VS 2012 中:屏幕顶部“文件编辑查看项目构建...”:选择项目。属性是菜单中的最后一项。事实上,对我来说,目标名称也不匹配。

于 2021-12-17T17:44:07.880 回答
0

在 General->Output Directory 中指定的目录和在 Linker->Output File 的路径中指定的目录必须匹配。

如果要更改默认值,请按以下顺序执行操作:首先在 General->Output Directory 中配置 OutDir。例如

$(SolutionDir)$(Platform)\$(Configuration)\MyProgram\

确保输出文件是一致的。例如,这会工作

$(OutDir)\$(TargetName)$(TargetExt)
于 2018-01-10T11:23:22.643 回答