2017-05-06 87 views
0

我想在Fedora 25上从源代码编译LLVM,Clang,OpenMP(来自LLVM项目)和libC++(libcxx)。默认GCC 6.3正在用于构建它们。我发出使用OpenMP构建LLVM/Clang时与OpenMP和C++相关的错误

cmake ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" 

一切似乎顺利,直到我得到

-- Performing Test LIBOMPTARGET_HAVE_STD_CPP11_FLAG 
-- Performing Test LIBOMPTARGET_HAVE_STD_CPP11_FLAG - Success 
-- Performing Test LIBOMPTARGET_HAVE_WERROR_FLAG 
-- Performing Test LIBOMPTARGET_HAVE_WERROR_FLAG - Success 
-- Could NOT find LIBOMPTARGET_DEP_LIBELF (missing: LIBOMPTARGET_DEP_LIBELF_LIBRARIES LIBOMPTARGET_DEP_LIBELF_INCLUDE_DIRS) 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Could NOT find LIBOMPTARGET_DEP_LIBFFI (missing: LIBOMPTARGET_DEP_LIBFFI_LIBRARIES LIBOMPTARGET_DEP_LIBFFI_INCLUDE_DIRS) 
-- LIBOMPTARGET: Building offloading runtime library libomptarget. 
-- LIBOMPTARGET: Not building aarch64 offloading plugin: machine not found in the system. 
-- LIBOMPTARGET: Not building CUDA offloading plugin: libelf dependency not found. 
-- LIBOMPTARGET: Not building PPC64 offloading plugin: machine not found in the system. 
-- LIBOMPTARGET: Not building PPC64le offloading plugin: machine not found in the system. 
-- LIBOMPTARGET: Not building x86_64 offloading plugin: libelf dependency not found. 
-- Found Z3: /usr/lib64/libz3.so (found suitable version "4.5.0 - 64 bit - build hashcode d57a2a6dce92", minimum required is "4.5") 
-- Looking for sys/resource.h 
-- Looking for sys/resource.h - found 
-- Clang version: 5.0.0 
-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG 
-- Performing Test CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Failed 
-- Configuring done 
-- Generating done 

似乎有两个误区 - 1相关的OpenMP(与LIBOMPTARGET_DEP_LIBELFLIBOMPTARGET_DEP_LIBFFI)和1与C++(CXX_SUPPORTS_NO_NESTED_ANON_TYPES_FLAG - Failed) 。我真的不知道它们是什么意思,但我希望能够至少在多核CPU上使用OpenMP,并且我肯定希望能够编译C++源文件。那么我应该如何关心这些错误呢?如果它们很重要,那么在这里做什么暗示?

更新:当我尝试构建它时,我在libcxx中得到了几个未定义的引用。

回答

0

对于OpenMP相关的错误,我认为你需要libelf和libffi安装在你的系统上。