| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 204 人关注过本帖
标题:CentOS7.6源码安装CGAL-5.0(PostGis依赖包)报错
只看楼主 加入收藏
sunboxuan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-11-17
  问题点数:0  回复次数:1   
CentOS7.6源码安装CGAL-5.0(PostGis依赖包)报错
[root@pggis build]# cmake -DCGAL_HEADER_ONLY=OFF -DCMAKE_BUILD_TYPE=Release ..
== Setting paths ==
-- Build CGAL from release in directory CGAL-5.0
-- Packagenames: CGAL-5.0
== Setting paths (DONE) ==

== Generate version files ==
-- CGAL_MAJOR_VERSION=5
-- CGAL_MINOR_VERSION=0
-- CGAL_BUGFIX_VERSION=0
-- CGAL_SONAME_VERSION=13
-- CGAL_SOVERSION     =13.0.3
-- CGAL_REFERENCE_CACHE_DIR=
-- Building shared libraries
-- Targetting Unix Makefiles
-- Using /usr/bin/c++ compiler.
-- USING CMake version: 3.15.5
-- System: Linux
-- USING GCC_VERSION = '4.8.5 20150623 (Red Hat 4.8.5-39)'
-- Using gcc version 4 or later. Adding -frounding-math
== Generate version files (DONE) ==

-- Build type: Release
-- USING CXXFLAGS = ' -O3 -DNDEBUG'
-- USING LDFLAGS = ' '
== Detect external libraries ==
-- External libraries supported: GMP;GMPXX;MPFR;ZLIB;OpenGL;LEDA;MPFI;RS;RS3;OpenNL;Eigen3;ESBTL;Coin3D;NTL;IPE
-- Preconfiguring library: GMP ...
-- GMP has been preconfigured:
--   UseGMP-file:      
--   GMP include:      /usr/local/include
--   GMP libraries:    /usr/local/lib/libgmp.so
--   GMP definitions:  
-- USING GMP_VERSION = '6.1.2'
-- Preconfiguring library: MPFR ...
-- MPFR has been preconfigured:
--   UseMPFR-file:      
--   MPFR include:      /usr/local/include
--   MPFR libraries:    /usr/local/lib/libmpfr.so
--   MPFR definitions:  
-- USING MPFR_VERSION = '4.0.2'
-- Found Boost: /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48")  
-- Boost include dirs: /usr/local/include
-- Boost libraries:   
== Detect external libraries (DONE) ==

== Write compiler_config.h ==
-- Performing Test CGAL_CFG_DENORMALS_COMPILE_BUG - Success
-- Performing Test CGAL_CFG_FPU_ROUNDING_MODE_UNWINDING_VC_BUG - Success
-- Performing Test CGAL_CFG_IEEE_754_BUG - Success
-- Performing Test CGAL_CFG_ISTREAM_INT_BUG - Success
-- Performing Test CGAL_CFG_MATCHING_BUG_5 - Success
-- Performing Test CGAL_CFG_MATCHING_BUG_6 - Success
-- Performing Test CGAL_CFG_MATCHING_BUG_7 - Success
-- Performing Test CGAL_CFG_MATCHING_BUG_8 - Success
-- Performing Test CGAL_CFG_NO_LIMITS - Success
-- Performing Test CGAL_CFG_NO_NEXTAFTER - Success
-- Performing Test CGAL_CFG_NO_STL - Success
-- Performing Test CGAL_CFG_NUMERIC_LIMITS_BUG - Success
-- Performing Test CGAL_CFG_OUTOFLINE_MEMBER_DEFINITION_BUG - Success
-- Performing Test CGAL_CFG_TEMPLATE_IN_DEFAULT_PARAMETER_BUG - Success
-- Performing Test CGAL_CFG_TYPENAME_BEFORE_DEFAULT_ARGUMENT_BUG - Success
-- Performing Test CGAL_CFG_USING_BASE_MEMBER_BUG_2 - Success
== Write compiler_config.h (DONE) ==

== Generating build files ==
Configuring libCGAL
CMake Error at cmake/modules/CGAL_SetupCGALDependencies.cmake:108 (target_compile_features):
  target_compile_features The compiler feature "cxx_decltype_auto" is not
  known to CXX compiler

  "GNU"

  version 4.8.5.
Call Stack (most recent call first):
  src/CGAL/CMakeLists.txt:11 (CGAL_setup_CGAL_dependencies)


-- USING GMP_VERSION = '6.1.2'
-- USING MPFR_VERSION = '4.0.2'
-- USING BOOST_VERSION = '1.71.0'
libCGAL is configured
-- Sources for CGAL component library 'CGAL_Core' detected
-- Found Boost: /usr/local/lib/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.48") found components:  thread system
Configuring libCGAL_Core
libCGAL_Core is configured
-- Sources for CGAL component library 'CGAL_ImageIO' detected
Configuring libCGAL_ImageIO
-- USING ZLIB_VERSION = '1.2.7'
libCGAL_ImageIO is configured
-- Sources for CGAL component library 'CGAL_Qt5' detected
Configuring libCGAL_Qt5
CMake Error at /opt/Qt5.13.2/5.13.2/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake:9 (message):
  Failed to find "GL/gl.h" in "/usr/include/libdrm".
Call Stack (most recent call first):
  /opt/Qt5.13.2/5.13.2/gcc_64/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:187 (include)
  /opt/Qt5.13.2/5.13.2/gcc_64/lib/cmake/Qt5Widgets/Qt5WidgetsConfig.cmake:100 (find_package)
  /opt/Qt5.13.2/5.13.2/gcc_64/lib/cmake/Qt5OpenGL/Qt5OpenGLConfig.cmake:100 (find_package)
  /opt/Qt5.13.2/5.13.2/gcc_64/lib/cmake/Qt5/Qt5Config.cmake:28 (find_package)
  cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake:27 (find_package)
  src/CGAL_Qt5/CMakeLists.txt:8 (include)


-- Configuring incomplete, errors occurred!
See also "/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeOutput.log".
See also "/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeError.log".

-------------------------------------------------------------------------------------------------------------------------------------------

/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeError.log文件内容如下:
Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_13d39/fast && /usr/bin/gmake -f CMakeFiles/cmTC_13d39.dir/build.make CMakeFiles/cmTC_13d39.dir/build
gmake[1]: Entering directory `/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_13d39.dir/src.c.o
/usr/bin/cc   -DCMAKE_HAVE_LIBC_PTHREAD   -o CMakeFiles/cmTC_13d39.dir/src.c.o   -c /usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_13d39
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_13d39.dir/link.txt --verbose=1
/usr/bin/cc  -DCMAKE_HAVE_LIBC_PTHREAD    CMakeFiles/cmTC_13d39.dir/src.c.o  -o cmTC_13d39
CMakeFiles/cmTC_13d39.dir/src.c.o: In function `main':
src.c:(.text+0x2d): undefined reference to `pthread_create'
src.c:(.text+0x39): undefined reference to `pthread_detach'
src.c:(.text+0x4a): undefined reference to `pthread_join'
src.c:(.text+0x5e): undefined reference to `pthread_atfork'
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_13d39] Error 1
gmake[1]: Leaving directory `/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_13d39/fast] Error 2


Source file was:
#include <pthread.h>

void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/gmake cmTC_f3273/fast && /usr/bin/gmake -f CMakeFiles/cmTC_f3273.dir/build.make CMakeFiles/cmTC_f3273.dir/build
gmake[1]: Entering directory `/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_f3273.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_f3273.dir/CheckFunctionExists.c.o   -c /usr/local/share/cmake-3.15/Modules/CheckFunctionExists.c
Linking C executable cmTC_f3273
/usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f3273.dir/link.txt --verbose=1
/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create    CMakeFiles/cmTC_f3273.dir/CheckFunctionExists.c.o  -o cmTC_f3273 -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_f3273] Error 1
gmake[1]: Leaving directory `/usr/local/src/software/CGAL-5.0/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_f3273/fast] Error 2
搜索更多相关主题的帖子: Test cmake local Build Using 
2019-11-17 22:33
sunboxuan
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-11-17
  得分:0 
上面的问题自己解决的,所以自己来回答。
主要原因是CentOS7.6的gcc和g++是4.8.5版本的,是C++14模式的,而CGAL-5.0要求C++17模式才能编译通过,所以解决办法有两个:
1、升级CentOS7.6的gcc和g++到最高版本,需要到官方下载源码包,然后编译安装升级。
2、不要在CentOS7.6上编译CGAL-5.0了,编译CGAL-4.x.x都可以顺利通过的。

2019-11-18 21:51
快速回复:CentOS7.6源码安装CGAL-5.0(PostGis依赖包)报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.062157 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved