визуальное связывание с 2012 C ++ GDAL

Я создал стандартное приложение Windows с VS 2012 Pro. Просто 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: неразрешенный внешний символ
_GDALAllRegister @ 0, на который ссылается функция _main

(Также отсутствует множество других символов, но этот должен быть легким.)

Я использовал dumpbin и GDALAllRegister появляется в экспортированных символах. Он отображается как «GDALAllRegister», а не как «_GDALAllRegister @ 0».

Я попытался загрузить и использовать сборку dev, а также собрал себя. Те же результаты.

Я просто знаю, что это что-то простое, но у меня здесь просто мозги. Что я сделал не так?

Благодарю.

-Рейли.

1

Решение

Я сказал, что это было просто и глупо, и это было.

У меня был менеджер сборки, установленный для сборки 32 бит.

Еще 4 часа моей жизни я никогда не вернусь.

Спасибо Мануэллу за его предложение. Это заставило меня смотреть в другом направлении, и я нашел это.

Извините, сообщество. Это то, что приходит от программирования устал.

-Рейли.

1

Другие решения

Этот тип ошибки типичен для несоответствия «Соглашения о вызовах» между EXE и LIB.

Проверь у тебя __cdecl (/ Gd) в «Свойствах конфигурации» -> C ++ -> Дополнительно -> «Соглашение о вызовах»

0