CMake-无法从源代码构建OpenCascade [英] CMake - cannot build OpenCascade from source

查看:208
本文介绍了CMake-无法从源代码构建OpenCascade的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从源代码构建OpenCascade。
我正在使用此指南:


编辑3:
在听完Tsyvarev的建议之后,我将行更改为

  CMAKE_MAKE_PROGRAM:FILEPATH = C:/Users/User1/Desktop/OPENCA~1/msys/bin/make.exe 

这些是我得到的错误:

  C编译器标识为GNU 8.1.0 
CXX编译器标识为GNU 8.1.0
正在检测C编译器ABI信息
CMake错误:生成器:make的执行失败。生成命令为:C:/ Users / User1 / Desktop / OPENCA〜1 / msys / bin cmTC_51dc6 / fast&&
检测C编译器ABI信息-失败
检查工作的C编译器:C:/ Program Files / mingw-w64 / x86_64-8.1.0-posix-seh-rt_v6-rev0 / mingw64 / bin / gcc .exe
CMake错误:生成器:make执行失败。生成命令为:C:/ Users / User1 / Desktop / OPENCA〜1 / msys / bin cmTC_88ba8 / fast&&
检查工作的C编译器:C:/ Program Files / mingw-w64 / x86_64-8.1.0-posix-seh-rt_v6-rev0 / mingw64 / bin / gcc.exe-损坏的
CMake错误位于C:/ Program Files / CMake / share / cmake-3.18 / Modules / CMakeTestCCompiler.cmake:66(message):
C编译器

C:/ Program Files / mingw- w64 / x86_64-8.1.0-posix-seh-rt_v6-rev0 / mingw64 / bin / gcc.exe

无法编译简单的测试程序。

它失败,并显示以下输出:

更改目录:C:/ Users / User1 / Desktop / OpenCascade项目/ oce / BUILD / CMakeFiles / CMakeTmp

运行构建命令:C:/ Users / User1 / Desktop / OPENCA〜1 / msys / bin cmTC_88ba8 / fast&
生成器拒绝访问:make的执行失败。生成命令为:C:/ Users / User1 / Desktop / OPENCA〜1 / msys / bin cmTC_88ba8 / fast&&




CMake将无法正确生成此项目。
调用堆栈(最近调用一次):
CMakeLists.txt:20(项目)


配置不完整,发生了错误!
另请参见 C:/ Users / User1 / Desktop / OpenCascade项目/oce/BUILD/CMakeFiles/CMakeOutput.log。
另请参见 C:/ Users / User1 / Desktop / OpenCascade项目/oce/BUILD/CMakeFiles/CMakeError.log。


解决方案

这是我构建OpenCascade 7.4.0的方式(静态+共享)来自 http://www.opencascade.com/content/latest-release 在MSYS2中使用Ninja:

  INSTALLPREFIX = / usr / local 
mkdir -p build_static build_shared&&
cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH = $ INSTALLPREFIX / share / opencascade -DCMAKE_BUILD_TYPE:STRING =发布-DBUILD_SHARED_LIBS:BOOL = OFF -DBUILD_LIBRARY_TYPE:STRING =静态-DUSE_OFF-API: :BOOL = ON -DUSE_FREEIMAGE:BOOL = OFF -DUSE_FFMPEG:BOOL = OFF -DUSE_D3D:BOOL = OFF -DBUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL = ON -DBUILD_USE_PCH:BOOL = OFF -DBUILD_SAMPLES_QT:BOOL = OFF -S。 -Bbuild_static&&
cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH = $ INSTALLPREFIX / share / opencascade -DCMAKE_BUILD_TYPE:STRING =发布-DBUILD_SHARED_LIBS:BOOL = ON -DBUILD_LIBRARY_TYPE:STRING =共享-DUSE_VTK: :BOOL = ON -DUSE_FREEIMAGE:BOOL = OFF -DUSE_FFMPEG:BOOL = OFF -DUSE_D3D:BOOL = OFF -DBUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL = ON -DBUILD_USE_PCH:BOOL = OFF -DBUILD_SAMPLES_QT:BOOL = OFF -S。 -Bbuild_shared&&&
sed -i.bak -e" s / LINK_LIBRARIES * = * [^] * libTKTopAlgo\.dll\.a。*-lfreetype。* libTKernel\.dll\.a。* $ /& -Wl,根据需要-lz -lbz2 -lharfbuzz -lpng -lbrotlidec / build_shared / build.ninja&&
ninja -Cbuild_static安装/剥离&&
ninja -Cbuild_shared安装/剥离&&
echo成功


I am trying to Build OpenCascade from source. I am using this guide: https://github.com/tpaviot/oce/blob/master/BUILD.MINGWw64.md

All the steps from 1-5, which include downloading stuff have been performed. Now i am trying to build using CMAKE

*I used "Where is the source code" option to point to the directory of the oce (as instructed). *I used "Where to build the binaries" option, to point the a folder which i named 'BUILD' inside the directory mentioned in the above step (as instructed). *I pressed 'Configure' and selected "MSYS Makefiles" with default native compilers.

Here started the errors. I noticed that CMake had produced a text file, so i went inside and changed the CMAKE MAKE location: CMAKE_MAKE_PROGRAM:FILEPATH=C:/Users/User1/Desktop/OPENCA~1/msys/bin

There i moved forward but new errors spawned.

so how do i move forward?

The guide then says: " Check OCE_USE_BUNDLE_SOURCE Check OCE_WITH_FREEIMAGE Check OCE_WITH_GL2PS Check OCE_VISUALISATION "

Where do i set these? There are no such variables inside the text file, and neither i can set them up on CMAKE.

EDIT: These are the errors i get now:

The C compiler identification is GNU 8.1.0
The CXX compiler identification is GNU 8.1.0
Detecting C compiler ABI info
CMake Error: Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_a5bfb/fast && 
Detecting C compiler ABI info - failed
Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_d3ad7/fast && 
Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe - broken
CMake Error at C:/Program Files/CMake/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake:66 (message):
  The C compiler

    "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_d3ad7/fast && Access is denied
    Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_d3ad7/fast && 
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:20 (project)


Configuring incomplete, errors occurred!
See also "C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeOutput.log".
See also "C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeError.log".

EDIT 2: There are some null options in CMake:

EDIT 3: After following the advice of Tsyvarev, i changed the line to

CMAKE_MAKE_PROGRAM:FILEPATH=C:/Users/User1/Desktop/OPENCA~1/msys/bin/make.exe

These are the errors i get:

 The C compiler identification is GNU 8.1.0
    The CXX compiler identification is GNU 8.1.0
    Detecting C compiler ABI info
    CMake Error: Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_51dc6/fast && 
    Detecting C compiler ABI info - failed
    Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe
    CMake Error: Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_88ba8/fast && 
    Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe - broken
    CMake Error at C:/Program Files/CMake/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake:66 (message):
      The C compiler
    
        "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe"
    
      is not able to compile a simple test program.
    
      It fails with the following output:

    Change Dir: C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeTmp
    
    Run Build Command(s):C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_88ba8/fast && Access is denied
    Generator: execution of make failed. Make command was: C:/Users/User1/Desktop/OPENCA~1/msys/bin cmTC_88ba8/fast && 
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:20 (project)


Configuring incomplete, errors occurred!
See also "C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeOutput.log".
See also "C:/Users/User1/Desktop/OpenCascade project/oce/BUILD/CMakeFiles/CMakeError.log".

解决方案

Here's how I built OpenCascade 7.4.0 (static+shared) from http://www.opencascade.com/content/latest-release under MSYS2 using Ninja:

INSTALLPREFIX=/usr/local
mkdir -p build_static build_shared &&
 cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX/share/opencascade -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_LIBRARY_TYPE:STRING=Static -DUSE_VTK:BOOL=OFF -DUSE_RAPIDJSON:BOOL=ON -DUSE_FREEIMAGE:BOOL=OFF -DUSE_FFMPEG:BOOL=OFF -DUSE_D3D:BOOL=OFF -DBUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL=ON -DBUILD_USE_PCH:BOOL=OFF -DBUILD_SAMPLES_QT:BOOL=OFF -S. -Bbuild_static &&
 cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX/share/opencascade -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_LIBRARY_TYPE:STRING=Shared -DUSE_VTK:BOOL=OFF -DUSE_RAPIDJSON:BOOL=ON -DUSE_FREEIMAGE:BOOL=OFF -DUSE_FFMPEG:BOOL=OFF -DUSE_D3D:BOOL=OFF -DBUILD_RELEASE_DISABLE_EXCEPTIONS:BOOL=ON -DBUILD_USE_PCH:BOOL=OFF -DBUILD_SAMPLES_QT:BOOL=OFF -S. -Bbuild_shared &&
 sed -i.bak -e "s/LINK_LIBRARIES *= *[^ ]*libTKTopAlgo\.dll\.a.*-lfreetype.*libTKernel\.dll\.a.*$/& -Wl,--as-needed -lz -lbz2 -lharfbuzz -lpng -lbrotlidec/" build_shared/build.ninja &&
 ninja -Cbuild_static install/strip &&
 ninja -Cbuild_shared install/strip &&
 echo Success

这篇关于CMake-无法从源代码构建OpenCascade的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆