1

我用 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”。

我尝试下载和使用 dev 构建,也构建了自己。结果相同。

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

谢谢。

-赖利。

4

2 回答 2

1

我说这既简单又愚蠢,确实如此。

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

再过4个小时我就再也回不来了。

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

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

-赖利。

于 2013-11-13T19:29:46.753 回答
0

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

检查“配置属性”-> C++ -> 高级->“调用约定”中是否有__cdecl (/Gd)

于 2013-11-13T17:22:39.723 回答