Я создал стандартное приложение Windows с VS 2012 Pro. Просто main.cpp выглядит так:linking vs 2012 C++ GDAL
#include "gdal_priv.h"
#include "cpl_conv.h"
int main(int argc, char* argv[])
{
GDALAllRegister();
return 0;
}
Я правильно установил путь включения. У меня есть gdal_i.lib в моем Linker -> Input -> Additional Dependencies.
Link выдает следующее сообщение:
1> main.obj: ошибка LNK2019: неразрешенный внешний символ _GDALAllRegister @ 0 ссылается функция _main
(A ставриды других символов являются отсутствует, но это должно быть легко.)
Я использовал dumpbin и GDALAllRegister появляется в экспортированных символах. Он отображается как «GDALAllRegister», а не как «_GDALAllRegister @ 0».
Я попытался загрузить и использовать конструкцию dev, а также сам. Те же результаты.
Я просто знаю, что это что-то простое, но я полностью смущаюсь здесь. Что я сделал не так?
Спасибо.
-reilly.
_GDALAllRegister @ 0 - это то, как компилятор выбрал псевдоним конструктора. Я действительно не знаю, почему это не связывание, но вы можете попробовать использовать фиксированный путь, чтобы увидеть, будет ли он строить, т.е. #inlcude "c: /pathto/cpl_conv.h" – thermite
Какова ваша конвенция о звонках в C++ -> Дополнительно? – manuell