[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 и т. д.
Создать пакет 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
Надеюсь, что это решит вашу проблему.
Других решений пока нет …