Я создал стандартное приложение 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, а также собрал себя. Те же результаты.
Я просто знаю, что это что-то простое, но у меня здесь просто мозги. Что я сделал не так?
Благодарю.
-Рейли.
Я сказал, что это было просто и глупо, и это было.
У меня был менеджер сборки, установленный для сборки 32 бит.
Еще 4 часа моей жизни я никогда не вернусь.
Спасибо Мануэллу за его предложение. Это заставило меня смотреть в другом направлении, и я нашел это.
Извините, сообщество. Это то, что приходит от программирования устал.
-Рейли.
Этот тип ошибки типичен для несоответствия «Соглашения о вызовах» между EXE и LIB.
Проверь у тебя __cdecl (/ Gd) в «Свойствах конфигурации» -> C ++ -> Дополнительно -> «Соглашение о вызовах»