Я пытаюсь написать программу 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.
Спасибо всем за помощь, проблема была в том, что компоновщик не смог найти библиотеку GDAL.
я сделал это для кода C
gcc create.c -lgdal