无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)

 

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK2019    无法解析的外部符号 __imp_SHGetSpecialFolderPathA,该符号在函数 "public: static class SEACAVE::String __cdecl SEACAVE::Util::getApplicationFolder(void)" (?getApplicationFolder@Util@SEACAVE@@SA?AVString@2@XZ) 中被引用    InterfaceCOLMAP    D:\3dRecon\openMVS\release\apps\InterfaceCOLMAP\Common.lib(Util.obj)    1    
 

 

无法解析的外部符号  通常是找不到库。比如,但不限于shell32.lib。

解决方法通常有,手动链接相应库。

#pragma   comment(lib,   "shell32.lib")   

 

那么为什么别人机器上跑着很正常的工程,在我这,需要额外引用库呢?

区别来自于%(AdditionalDependencies)

这个是从本机继承的,和自己的机器有关,而没有随着工程复制而改变。别人的这个参数包含了shell32.lib,而我的不包含,这就是区别

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第1张图片

 

 

问题找到了,那么,怎么改?

一般来讲,这个东西躺在props文件里

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第2张图片

那么问题是,我这个工程拿的是哪个props?

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第3张图片

 

从属性管理器去找。

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第4张图片

 

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第5张图片

 

其实这里是有的,但是很显然,有很多个,尤其opencv3.4.2可能是我自己定义的,可能被default了。

如下,opencv3.4.2没有这几个常规默认项。

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第6张图片

(问题是,这一堆props,到底以谁为准?还是“从父级或项目默认设置继承”互相冲掉了?)

观察现象:opencv342是继承的libboost

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第7张图片

boost继承空,断掉了

 

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第8张图片

 

(后三个灰色的不能改)前三个好像顺序依赖,但是在boost断了,boost是拷贝过来的props,可能在找系统变量时出错了。

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第9张图片

 

怎么改?不要再属性管理器双击,搜到文件,拖进VS,直接改。

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第10张图片

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第11张图片

再重新打开一下VS,继承成功。

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第12张图片

注销掉主动链接,编译成功

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第13张图片

 

更简单方法就是手动加shell32.lib,不用写进任何变量内,但是一旦工程项多,你需要给每个都手动加一次。(这方法的愚蠢程度,无异于直接写pragma comment)

无法解析的外部符号——shell32.lib——VS宏定义问题——%(AdditionalDependencies)_第14张图片

 

 

 

你可能感兴趣的:(C++)