链接vs 2012 c ++ GDAL

时间:2013-11-13 14:29:45

标签: c++ visual-c++ visual-studio-2012 gdal

我使用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:错误LNK2019:未解析的外部符号   函数_main

中引用了_GDALAllRegister @ 0

(还缺少一大堆其他符号,但这个符号应该很简单。)

我使用了dumpbin,GDALAllRegister出现在导出的符号中。它确实显示为“GDALAllRegister”,而不是“_GDALAllRegister @ 0”。

我尝试下载并使用开发构建,并自己构建。相同的结果。

我只知道这很简单,但我在这里完全是脑筋急转直。我做错了什么?

感谢。

-reilly。

2 个答案:

答案 0 :(得分:1)

我说它简单而愚蠢,而且确实如此。

我将构建管理器设置为构建32位。

我生命中的另外4个小时我永远不会回来。

感谢Manuell的建议。它让我朝不同的方向看,我找到了它。

对不起,社区。这就是编程累了。

-reilly。

答案 1 :(得分:0)

这种错误是EXE和LIB之间“呼叫约定”不匹配的典型错误。

检查“配置属性”中的 __ cdecl(/ Gd) - > C ++ - >高级 - > “召集公约”