Graph-tool: компилировать и подключаться к локальной библиотеке CGAL, в Linux? (не судо)

[Ubuntu]

Я скомпилировал CGAL локально:

/path/to/cgal/
/lib/
libCGAL_Core.so     libCGAL_Core.so.13.0.2
libCGAL_ImageIO.so.13      libCGAL.so     libCGAL.so.13.0.2
libCGAL_Core.so.13  libCGAL_ImageIO.so
libCGAL_ImageIO.so.13.0.2  libCGAL.so.13
/include/
/CGAL/
version.h compiler_config.h

И мне удалось удовлетворить все требования графического инструмента, кроме cgal (по крайней мере, все требования проверены на cgal):

./configure --with-boost=/path/to/boost --with-cgal=/path/to/cgal

И я получаю все успехи до тех пор, пока не получу следующее сообщение об ошибке:

checking for __gmpz_init in -lgmp... yes
checking for __gmpz_init in -lgmp... (cached) yes
checking whether CGAL is available in /path/to/cgal... no
configure: error: CGAL library not found.

// the harshest part is that it seems to be searching in the correct
// directory.

Я попытался указать разные точки в каталоге сборки cgal. Команда компиляции cgal, которую я использовал, была (из каталога сборки):

cmake path/to/cgal_src_dir -DCMAKE_BUILD_TYPE=Release;

Далее я попытался добавить включает в себя:

./configure --with-boost=$boost --with-cgal=path/to/cgal CPPFLAGS="-I path/to/cgal/include -I $HOME/.local/include" LDFLAGS="-L path/to/cgal/lib -L $HOME/.local/lib -Wl,-rpath=$HOME/.local/lib"

Я признаю, что я не понимаю -Wl,-rpath= частично, я скопировал это из руководства по установке Graph-Tool. .local/lib папка содержит файлы для других компонентов, таких как gmp, expat, sparsehash и т. д.

0

Решение

Это не точный ответ, но, как того требует OP, он поможет завершить установку, поэтому, пожалуйста, не голосуйте вслепую.

Создать пакет Debian из libcgal откройте ваш CMakeList.txt и в конце файла добавьте:

#--------------------------------------------------------------------
# Create debian files
#--------------------------------------------------------------------
if (UNIX AND NOT APPLE)
SET(CPACK_GENERATOR "DEB")
SET(CPACK_PACKAGE_NAME  "libcgal-all")
SET(CPACK_PACKAGE_VERSION  "${CGAL_VERSION}")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY  "C++ library for computational geometry (development files)\n CGAL (Computational Geometry Algorithms Library) makes the most important of the solutions and methods developed in computational geometry available to users in industry and academia in a C++ library. The goal is to provide easy access to useful, reliable geometric algorithms.\n .\n This package contains the header files and static libraries for libCGAL.so, libCGAL_Core.so, and libCGAL_ImageIO.so. The  header files and static libraries for libCGAL_Qt4.so can be found in the package libcgal-qt4-dev.")
SET(CPACK_PACKAGE_CONTACT "bordeo")
SET(CPACK_DEBIAN_PACKAGE_DEPENDS  "libboost-dev, libboost-thread-dev, libboost-system-dev, libboost-program-options-dev, libgmp10-dev, libmpfr-dev, zlib1g-dev")
SET(CPACK_DEBIAN_PACKAGE_REPLACES "libcgal10, libcgal-dev")
INCLUDE(CPack)
endif()

Если у вас нет никакой зависимости, удалите всю строку SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libcln6, libcln-dev, libreadline6, libreadline6-dev, flex, bison"), а также изменить другие, как это кажется нужным.

Теперь перейдите в терминал и выполните следующие команды в каталоге cgal.

mkdir build
cd build
cmake-gui ..
# set CMAKE_INSTALL_PREFIX to `~/.local
cmake ..
make -j4
cpack ..

вы найдете свой Debian встроенным. Извлеките или установите Debian в ~/.local,

Как только это будет сделано, перейдите в директорию Graph Tool и начните сборку как

./configure --prefix="/wherever"  --with-boost=/path/to/boost --with-cgal=~/.local
make -j4
make install

Надеюсь, что это решит вашу проблему.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]