VC2013 LINK2019:无法解析的外部符号
做算法作业用到了glpk包,在使用包时出现了LINK2019的错误。百度上说这个错误一般是“链接器无法在已编译的obj、lib或dll文件中找到函数定义”的问题。但是对链接器进行配置后发现错误仍然没有解决。
Emmmm…是不是快到2019年了要出个2019的bug提前庆祝一下。。。
后来发现不是linker的配置错误问题。本地的VC是32位的,但是安装的glpk包是64位的。把VC设为64位即可编译成功。
下面记录一下切换从32位VC切换到64位的过程:
- 先检查编译器是32位的还是64位的。
#include<iostream>
int main()
{
printf("%d", sizeof(int *));
while (1);
return 0;
}
如果输出是4,则为32位;如果输出是8,则为64位。
- 项目→属性,打开项目属性页面。点击“配置管理器”。
- 配置管理器→活动解决方案平台,选择新建。
- 键入或选择新平台,选择x64。点击确定。(记忆中在没有配置过64位的时候是点选“键入或选择新平台”,会有x64的选项。)
- 完成。
另外记录一下链接lib的过程:
- 项目→属性→配置属性→VC++目录→包含目录。在“包含目录”中添加glpk.h文件所在的目录。
- 项目→属性→配置属性→C/C++→常规→附加包含目录。在“附加包含目录”中添加glpk.h文件所在的目录。
- 链接器→常规。修改“附加库目录”为lib包所在目录。
- 链接器→输入→附加依赖项。添加lib包的名称,如“glpk.lib”。
- 完成(上述链接库的方法是隐式链接的方法,还可通过写代码的方式进行显式链接)。
先这样、、、