我用VS 2012 Pro创建了一个标准windows应用程序。只是一个看起来像这样的main.cpp:
#include "gdal_priv.h"
#include "cpl_conv.h"
int main(int argc, char* argv[])
{
GDALAllRegister();
return 0;
}我已经正确地设置了包含路径。我的链接器gdal_i.lib中有->输入->附加依赖项。
链接失败的消息如下:
1>main.obj : error LNK2019:函数_main中引用的未解析外部符号_GDALAllRegister@0
(其他一些符号也不见了,但这个应该很容易。)
我使用了垃圾桶,GDALAllRegister出现在导出的符号中。它看起来确实是"GDALAllRegister",而不是"_GDALAllRegister@0“。
我试着下载和使用dev构建,也构建了自己。同样的结果。
我只知道这很简单,但我现在脑子完全抽筋了。我做错了什么?
谢谢。
-reilly。
发布于 2013-11-13 19:29:46
我说这很简单很愚蠢,而且确实如此。
我让构建管理器设置为构建32位。
再过四个小时我就再也回不来了。
感谢马努埃尔的建议。它让我朝另一个方向看,我找到了它。
抱歉,社区。这是编程疲劳的结果。
-reilly。
发布于 2013-11-13 17:22:39
这种错误是EXE和LIB之间“呼叫约定”不匹配的典型。
检查“配置属性”中有__cdecl (/Gd)“-> C++ -> Advanced->”“呼叫约定”
https://stackoverflow.com/questions/19956341
复制相似问题