Ошибка компиляции Gosmore в Ubuntu 11.10
Я хочу скомпилировать Gosmore на сервере Ubuntu 11.10.
Я получил исходный код от:
http://svn.openstreetmap.org/applications/rendering/gosmore/
Когда я пытаюсь выполнить команду "make", я получаю сообщение об ошибке, как показано ниже:
gcc -lm density.c -o density
/tmp/ccNQSatu.o: In function `main':
density.c:(.text+0x21f): undefined reference to `exp'
density.c:(.text+0x224): undefined reference to `atan'
density.c:(.text+0x2c3): undefined reference to `exp'
density.c:(.text+0x2c8): undefined reference to `atan'
density.c:(.text+0x5d3): undefined reference to `exp'
density.c:(.text+0x5d8): undefined reference to `atan'
density.c:(.text+0x67a): undefined reference to `exp'
density.c:(.text+0x67f): undefined reference to `atan'
density.c:(.text+0x723): undefined reference to `exp'
density.c:(.text+0x728): undefined reference to `atan'
density.c:(.text+0x793): undefined reference to `exp'
density.c:(.text+0x798): undefined reference to `atan'
collect2: ld returned 1 exit status
make: *** [jni/bboxes.c] Error 1
как это решить?
1 ответ
exp, atan, они находятся в математической библиотеке lib, она называется libm.a, вы ссылаетесь на нее с помощью -lm, что вы сделали, но в неправильном порядке: gcc -lm density.c -o плотность неправильная, плотность gcc.c -lm -o плотность правильная.
Я могу воспроизвести вашу проблему с последней версией gosmore, вот патч в моей копии github.
https://github.com/h4ck3rm1k3/gosmore/commit/67bd8e2dd7e76de47a31b3c3df1ab33b8fda797b
не забудьте положительный отзыв! спасибо майк