多语言展示
当前在线:1139今日阅读:84今日分享:32

VS出现宏定义冲突及无法解析外部符号的解决办法

当VS项目在编译的时候,会出现如下图错误。双击错误,跳转到log_severity.h头文件查看,是一个宏定义的地方出现了冲突。
工具/原料
1

VS 2013

2

Caffe

方法/步骤
1

项目—属性—C/C++—预处理器—预处理器定义,添加 GLOG_NO_ABBREVIATED_SEVERITIES,即可,再次编译通过。

2

当项目在生成的时候,会出现如下图错误。提示无法解析外部符号,这类问题一般是因为找不到相应的lib文件或者dll文件。

3

项目—属性—链接器—常规—附加库目录,添加相应的库目录即可,比如此处是因为加入glog库中的函数之后引起的问题,需要把glog中的lib文件目录加载进来。 需要注意的是,此处要与项目的配置和平台对应起来,比如此时的项目配置是Debug,平台用的是x64,因此要使用的lib目录就是D:\NugetPackages\glog.0.3.3.0\build\native\lib\x64\v120\Debug\dynamic

4

另外,还需要在链接器—输入—附加依赖项 增加所要使用的lib文件名,即告诉VS在添加了lib文件夹后可以在此文件夹下使用该文件libglog.lib。重新生成,没有错误。

推荐信息