Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 图形工具:在Linux中编译并连接到本地CGAL库?(无sudo)_C++_Cmake_Autoconf_Cgal_Graph Tool - Fatal编程技术网

C++ 图形工具:在Linux中编译并连接到本地CGAL库?(无sudo)

C++ 图形工具:在Linux中编译并连接到本地CGAL库?(无sudo),c++,cmake,autoconf,cgal,graph-tool,C++,Cmake,Autoconf,Cgal,Graph Tool,我已在本地编译CGAL: [Ubuntu] 我已经设法满足除cgal之外的所有图形工具需求(至少所有检查到cgal的需求): 我获得了所有成功,直到收到以下错误消息: ./configure --with-boost=/path/to/boost --with-cgal=/path/to/cgal 我尝试在cgal构建目录中指定不同的点。我使用的cgal编译命令是(从构建目录): 接下来,我尝试添加以下内容: cmake path/to/cgal_src_dir -DCMAKE_BUILD

我已在本地编译CGAL:

[Ubuntu]
我已经设法满足除cgal之外的所有图形工具需求(至少所有检查到cgal的需求):

我获得了所有成功,直到收到以下错误消息:

./configure --with-boost=/path/to/boost --with-cgal=/path/to/cgal
我尝试在cgal构建目录中指定不同的点。我使用的cgal编译命令是(从构建目录):


接下来,我尝试添加以下内容:

cmake path/to/cgal_src_dir -DCMAKE_BUILD_TYPE=Release;
我承认我不理解
-Wl,-rpath=
部分,我是从图形工具安装指南中复制的。
.local/lib
文件夹包含其他组件的文件,如gmp、expat、sparsehash等。

这不是确切的答案,但正如OP所要求的,将有助于完成安装,因此请不要盲目投票。 要创建
libcgal
的debian软件包,请打开CMakeList.txt并在文件末尾添加:

./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"
如果您没有任何依赖项,请删除整行
集合(CPACK_DEBIAN_PACKAGE_依赖于“libcln6、libcln dev、libreadline6、libreadline6 dev、flex、bison”)
,并根据需要更改其他设置

现在转到终端并在cgal目录中发出以下命令

#--------------------------------------------------------------------
# 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()
您将发现您的debian已构建。将debian解压缩或安装到
~/.local

完成此操作后,转到graph tool目录并启动构建,如

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

希望这能解决你的问题。

libcgal-dev
安装了吗?@Avezan不,我正在尝试设置一个不需要sudoa的安装。如果你设置路径
,使用cgal=/where/you/have/compiled
,你也必须设置
include
,我想,看看是否存在一个选项
/configure--help
ubuntu上的最佳选择是在cmake中添加一个deb配置(我总是这样做,很容易),然后让deb安装在
~/.local
中。之后,您可以使用cgal轻松地指向
,编译完成。如果你需要知道如何做,我可以在答案中发布配置,但这不是答案。好的,发布…..阿维赞,这太棒了!非常感谢。可能要到明天我才能确认,但我会继续接受,直到我有机会尝试。当我可以比较结果时,也许我会有机会发现问题所在。很好,明天让我知道…:)奇怪的是,直到我sudo安装了cgal,它才起作用。然后,当我在系统目录
/usr/(/local)bin
中引用库或您所指的包时,它就起作用了。对于deb,sudo是必需的,为了避免sudo,您可以提取和复制。不管怎样,它都不会污染系统目录。这通常适用于所有类型的库,除非存在冲突
备选方案或需要额外的ld配置。
#--------------------------------------------------------------------
# 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()
mkdir build
cd build
cmake-gui ..
# set CMAKE_INSTALL_PREFIX to `~/.local
cmake ..
make -j4
cpack ..
./configure --prefix="/wherever"  --with-boost=/path/to/boost --with-cgal=~/.local
make -j4
make install