Неопределенная ссылка на OGRRegisterAll

Я пытаюсь написать программу gdal для чтения шейп-файлов, но мне кажется, что я не могу пройти мимо регистрации драйверов. Вот код, я не уверен, почему функции в заголовочных файлах недоступны моему исходному файлу даже после его включения.

#include "/usr/include/gdal/ogrsf_frmts.h"int main()
{
GDALAllRegister();
}

Если я запускаю это: g++ demo.cppЯ получаю следующую ошибку:

demo.cpp: In function int main():
demo.cpp:6:21: error: GDALAllRegister was not declared in this scope
GDALAllRegister();
^

Если я попробую версию c, я получу это:

#include "/usr/include/gdal/ogr_api.h"int main()
{
OGRRegisterAll();
return 0;
}

gcc create.c

/tmp/cc3YB8sO.o: In function main:
create.c:(.text+0x11): undefined reference to OGRRegisterAll
collect2: error: ld returned 1 exit status

ОБНОВИТЬ
Я использую Ubuntu 15.04 64bit
Я установил все пакеты, используя apt:

sudo apt-get install gdal-bin libgdal-dev build-essential

У меня также есть pbu ubuntugis, и я установил qgis 2.10, который сделан из репозитория qgis, а не из pbu ubuntugis.

3

Решение

Спасибо всем за помощь, проблема была в том, что компоновщик не смог найти библиотеку GDAL.
я сделал это для кода C

gcc create.c -lgdal
1

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


По вопросам рекламы [email protected]