如何使用GEOS库编译程序

时间:2019-04-09 06:29:43

标签: c linker geospatial geos

我已经编写了一个小的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 个答案:

答案 0 :(得分:2)

来自github doco

您需要链接到libgeos_c.a库,例如:

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

(即命令行中的最后一项)

这将产生一个名为geos_test的可执行文件,其中包含调试信息。