Как скомпилировать программу с библиотекой GEOS - PullRequest
1 голос
/ 09 апреля 2019

Я написал небольшую программу на C для доступа к libgeos (https://github.com/libgeos/geos) функциям.

#include <stdio.h>
#include "geos_c.h"

int main()
{
    printf("Test");

    GEOSGeometry *inputGeom = GEOSGeomFromWKT("MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))");

    return 0;
}

Но компилятор выдает мне ошибку, когда я пытаюсь скомпилировать это.

ab@abc-pc:~/learn-c$ gcc geos_test.c 
/tmp/ccugTUqF.o: In function `main':
geos_test.c:(.text+0x21): undefined reference to `GEOSGeomFromWKT'
collect2: error: ld returned 1 exit status

Похоже, что компоновщик не может связать libgeos. Я был бы очень признателен, если бы кто-то мог помочь мне решить эту проблему, так как я новичок в экосистеме C.

1 Ответ

2 голосов
/ 09 апреля 2019

Из github doco :

Вам нужно связаться с библиотекой libgeos_c.a, например ::

gcc -g -Wall geos_test.c -o geos_test -lgeos_c

(то есть последний элемент в командной строке)

Это создает исполняемый файл с именем geos_test, с включенной информацией об отладке.

...