我最近将我的项目从VS2010迁移到了VS2012 (2010年编译所需的框架会崩溃,2012年会做得很好),但是现在它找不到shlwapi.lib
了。
我加了
$(WindowsSDK_IncludePath);
$(WindowsSDK_LibraryPath_x86);
在目录设置中,还需要添加其他内容吗?
编辑:完整的输出来自构建。
2>------ Build started: Project: MachineLearning, Configuration: Debug Win32 ------
2> MachLearning.cpp
1>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification
1>LINK : fatal error LNK1181: cannot open input file 'Shlwapi.lib'
2>d:\development\glukosescanner\machinelearning\source\machlearning.cpp(65): warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
2>d:\development\glukosescanner\machinelearning\source\machlearning.cpp(79): warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
2> libfftw-3.3-x86.lib(execute.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
2>LINK : warning LNK4075: ignoring '/INCREMENTAL' due to '/LTCG' specification
2>MachLearning.obj : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:LBR' specification
2>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
2> Generating code
2> Finished generating code
2> MachineLearning.vcxproj -> D:\Development\GlukoseScanner\GlucoseControl\Debug\MachineLearning.exe
========== Build: 1 succeeded, 1 failed, 6 up-to-date, 0 skipped ==========
发布于 2014-07-29 19:58:56
项目升级可能出错,但无论如何,您的项目设置似乎不正确。默认情况下,WindowsSDK_LibraryPath_x86
等应该已经存在了,并且像defaultlib 'MSVCRT' conflicts with use of other libs
这样的消息也表明您正在跨项目混合不同的编译器/链接器选项。
无论如何,首先要确保您有shlwapi.lib:确认磁盘上有这个目录,其中有shlwapi.lib,只需检查VS安装就可以了。
然后创建一个空白的新C++项目文件并将当前源文件添加到其中,添加所需的包含目录/库或预处理器选项。但仅此而已。那就建吧。这最终应该可以解决,然后你可以比较你的新项目和旧的项目,看看什么是错误的。或者,使用新项目..。
还要确保所有项目(如fftw等,casue似乎也有不同的设置)都是使用相同的设置构建的。实现这一目标的最简单方法是使用所有项目共享的所有编译器/链接器选项的单一属性表。我强烈建议查找它是如何工作的(它很简单),并始终使用它。
https://stackoverflow.com/questions/25013427
复制相似问题