LINUX.ORG.RU

Помогите скомпилировать insight3D в Debian 8

 


0

1

Ребята, доброго дня

Скачал insight3d с оф. сайта http://insight3d.sourceforge.net

Установил все необходимые зависимоски как в инструкции

- opencv - opengl - SDL - libxml2 (to parse xml files) - lapack and blas (to do some math) - libgtk+-2.0

Но после того как я набираю make в терминале компиляция отваливается с ошибками. Вот он

~/Programs/Insight3D/insight3d$ make
g++ -O3 -c `pkg-config --cflags opencv libxml-2.0 sdl gtk+-2.0` -I./ann_1.1.1/include/ geometry_textures.cpp
In file included from geometry_structures.h:38:0,
                 from geometry_textures.h:30,
                 from geometry_textures.cpp:25:
./sift/include/utils.h:159:45: error: ambiguating new declaration of ‘char* basename(const char*)’
 extern char* basename( const char* pathname );
                                             ^
In file included from /usr/include/c++/4.9/cstring:42:0,
                 from core_debug.h:30,
                 from core_structures.h:29,
                 from geometry_textures.h:28,
                 from geometry_textures.cpp:25:
/usr/include/string.h:601:26: note: old declaration ‘const char* basename(const char*)’
 extern "C++" const char *basename (const char *__filename)
                          ^
Makefile:17: ошибка выполнения рецепта для цели «geometry_textures.o»
make: *** [geometry_textures.o] Ошибка 1

Подскажите, что не так?

Очевидно что фигня из ./sift/include/utils.h конфликтует с фигней из /usr/include/string.h

Добавь const например

SZT ★★★★★
()
Ответ на: комментарий от SZT

У меня так было с Beryl 0.2.1 в современном дистрибутиве. В новом Glibc появился «raise» в файле /usr/include/signal.h. Решил тем, что переименовал везде «raide» в «raide2». А как правильно решать с помощью const?

P.S. А если компилячить со старым Glibc, а потом запускать в новом, то будут эпичные глюки?

ZenitharChampion ★★★★★
()
Ответ на: комментарий от ZenitharChampion

Ну чтобы и там и там было то же самое. В одном месте там extern char* basename, в другом extern «C++» const char *basename

Ну и этот extern «C++» тоже можно дописать. Правда я не знаю, будет ли оно нормально работать после этого

SZT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.