Graph-tool: компилировать и подключаться к локальной библиотеке CGAL, в Linux?(не судо) - PullRequest
0 голосов
/ 12 июня 2018
[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 и т. Д.

1 Ответ

0 голосов
/ 12 июня 2018

Это не точный ответ, но просьба 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

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

...