ActiViz 7.0编译记录

原创 2018年04月15日 16:52:54

前期准备:

  1. 虚拟机(VM,Vbox,hyper-V 随意)
  2. Window7 Sp1 x64
  3. .Net framework 4.0 
  4. Visual Stdio 2008
  5. Python 
  6. Cmake(3.11 和  2.8.8 两个都要下) 下载链接:点击打开链接
  7. CSV 下载链接:点击打开链接
  8. Git 下载链接:点击打开链接
  9. Doxygen(用来生成文档的) 下载链接:点击打开链接
  10. VTK 7.0 源码 下载链接:点击打开链接
  11. VTKData-7.0 下载链接: 点击打开链接
  12. GCC-XML源码 下载链接: 点击打开链接
  13. mummy源码  下载链接: 点击打开链接

上面工具准备的有点多~~

首先 虚拟机 装系统,装VS ,装Git,装Python,装Doxygen。

然后解压Cmake 把3.11和2.8.8分别解压,后面都用得到。

为了方便直接把CSV解压受扔到C:/Windows/System32里面吧。

下面解压GCC-XML源码,如果直接Git clone 下来的话应该目录应该如下图:


然后打开CMake2.8.2 选择源码目录,设置build路径,我是这样设置的

如果没有 CMAKE_INSTALL_PREFIX 这个选项的话,可以点Add Entry 添加,这是设置下面点击INSTALL 后安装的路径。


接下来点Confingure 然后Generate,然后打开这个解决方案选择Release,右键ALL_BUILD 点生成,然后 INSTALL 右键生成

然后就可以在上面设置的路径下比如我的是 C:\Program Files (x86)\gccxml\bin找到生成后的gccxml.exe,进入这个目录后右键管理员权限运行 gccxml_vcconfig.bat  配置gccxml。


================================这是一个分割线========================

下面开始编译mummy

同样是解压下载的mummy 或者Clone mummy,然后如下图所示:


找到Visual Studio 2008 命令提示 使用 sn -k  xxxxx.snk(xxxxx为自定义的名字,例如我的是xm.mummy.Runtime.snk)生成强签名。然后扔到Runtime文件夹里面。

在 Runtime 目录中找到cmakelist.txt 搜索 “IF(NOT Mummy_SNKEYFILE)” 在这句话上面插入

GET_FILENAME_COMPONENT(Mummy_SNKEYFILE "${CMAKE_CURRENT_SOURCE_DIR}/xm.mummy.Runtime.snk" ABSOLUTE) //xm.mummy.Runtime.snk为自定义的名字

然后在跟目录中找到cmakelist.txt,在这句

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3 FATAL_ERROR)  //我的是在第一行

下面添加

SET(gccxml_compiler "${CMAKE_CXX_COMPILER}") 
IF(MSVC80) 
    SET(gccxml_compiler "msvc8") 
ENDIF(MSVC80) 
IF(MSVC90) 
    SET(gccxml_compiler "msvc9") 
ENDIF(MSVC90) 
SET (GCCXML_EXTRA_D_ARGS "_HAS_TR1=0")

添加完后打开mummy根目录\Examples\Vehicles\wrappers\csharpmummy\CMakeLists.txt ,找到下面这块

  ADD_CUSTOM_COMMAND( 
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
        COMMAND ${gccxml_EXECUTABLE} 
        ARGS 
            -fxml=${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
            -fxml-start=_cable_ 
            ${gccxml_include_args} -DCABLE_CONFIGURATION 
            --gccxml-compiler ${CMAKE_CXX_COMPILER} 
            ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
        DEPENDS 
            ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
            ${header_fullpath} 
            ${gccxml_EXECUTABLE}

替换为

 ADD_CUSTOM_COMMAND( 
        OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
        COMMAND ${gccxml_EXECUTABLE} 
        ARGS 
            -fxml=${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
            -fxml-start=_cable_ 
            ${gccxml_include_args} -DCABLE_CONFIGURATION 
            --gccxml-compiler ${gccxml_compiler} 
            ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
            -D${GCCXML_EXTRA_D_ARGS} 
        DEPENDS 
            ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
            ${header_fullpath} 
            ${gccxml_EXECUTABLE} 
        )



然后打开Cmake 2.8.8 (注意这里一定要用2.8.8 大于3.0的会出警告然后生成后会通不过编译),然后选择源码目录,build的路径:

点Configrue,这时候会提示出问题,然后让你选择gccxml的路径。选择刚才设置的gccxml的路径,注意这个csc_EXECUTABLE 是指定的.Net framework的路径,一定要选4.0,如果选3.5的话会后面编译的时候也会报错!


设置完后,点Generate 生成,然后打开项目 选择Release 然后右键ALL_BUILD 生成。等会mummy 应该就可以编译通过了~

++++++++++++++++++++++++++分界线+++++++++++++++++++++++++++++++++

下面就是编译VTK 7.0

同样是解压下载的VTK 或者Clone VTk,然后如下图所示:


打开Cmake 3.11.0,如下图设置:




注意VTK_RENDERING_BACKEND 这个选择 一点要选择OpenGL 不然后面 在编译ActiViz的时候会提示找不到一个文件。

然后点Generate ,打开Project,选择ALL_BUILD 喝杯茶 等着编译就好了~~

——————————————————应该是最后一条分界线——————————————

最后一步,开始编译ActiViz 

找到Visual Studio 2008 命令提示 使用 sn -k  xxxxx.snk(xxxxx为自定义的名字,例如我的是xm.VTK.snk)生成强签名。把生成的强签名文件 扔到  源代码根目录  里面。

然后打开根目录CMakelist.txt,搜索

if(AVDN_SNKEYFILE STREQUAL "")

在之上添加:

GET_FILENAME_COMPONENT(AVDN_SNKEYFILE "${CMAKE_CURRENT_SOURCE_DIR}/xm.VTK.snk" ABSOLUTE)  //注意把文件名改为自己的

搜索

set(gccxml_compiler "${CMAKE_CXX_COMPILER}") 
if(MSVC80) 
    set(gccxml_compiler "msvc8") 
endif() 
if(MSVC90) 
    set(gccxml_compiler "msvc9") 
endif()

在之下插入

SET (GCCXML_EXTRA_D_ARGS "_HAS_TR1=0")

然后搜索

  add_custom_command( 
        OUTPUT ${ActiVizDotNet_BINARY_DIR}/xml/${cxxclass}.xml 
        COMMAND ${gccxml_EXECUTABLE} 
            -fxml=${ActiVizDotNet_BINARY_DIR}/xml/${cxxclass}.xml 
            -fxml-start=_cable_ 
            ${gccxml_include_args} -DCABLE_CONFIGURATION 
            --gccxml-compiler ${gccxml_compiler} 
            ${ActiVizDotNet_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
        DEPENDS 
            ${ActiVizDotNet_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
            ${header} 
            ${gccxml_EXECUTABLE} 
        )

替换为

 ADD_CUSTOM_COMMAND( 
            OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
            COMMAND ${gccxml_EXECUTABLE} 
            ARGS 
                -fxml=${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}.xml 
                -fxml-start=_cable_ 
                ${gccxml_include_args} -DCABLE_CONFIGURATION 
                --gccxml-compiler ${gccxml_compiler} 
                ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
                -D${GCCXML_EXTRA_D_ARGS} 
            DEPENDS 
                ${CMAKE_CURRENT_BINARY_DIR}/xml/${cxxclass}_gccxml.cxx 
                ${header} 
                ${gccxml_EXECUTABLE} 
            )

替换完成后搜索

vtkRenderingFreeTypeOpenGL //删了这个玩意

对就是删了上面这个

接着就是在Cmake 3.11.0 点击Configure ,如下图配置



点击Generate ,然后打开项目 选择ALL_BUILD 编译。

别急着喝茶,这时候可能会报一下错误

  1. fatal error C1083: Cannot open include file: 'vtksys/ios/sstream': No such file or directory
  2. error CS0246: The type or namespace name 'vtkRecti' could not be found (are you missing a using directive or an assembly reference?)
  3.  error LNK2019: unresolved external symbol "void __cdecl vtkRenderingContextOpenGL_AutoInit_Construct(void)
  4. "vtkOpenGLFreeTypeTextMapper" not found

第一个错误:找到文件vtkObjectEL.cxx,然后定位到出错的地方改为如下图:


第二错误:

在avtivizdotnet-build(即为自己设置的build路径)找到MummySettings.xml 然后添加 

<Class name="vtkRecti" wrappable="false"/>

第三个错误:

找到自己的VTK 的build的路径然后添加 vtkRenderingContextOpenGL-7.0.lib 到项目的C++链接列表,例如我的路径是

"C:\VTK-7.0.0-build\bin\Release\vtkRenderingOpenGL-7.0.dll"

第四个错误:

双击到出错的文件,然后把下面这句话注释掉~~

      using (Kitware.VTK.vtkOpenGLFreeTypeTextMapper o = Kitware.VTK.vtkOpenGLFreeTypeTextMapper.New()) 
        { 
            s = o.ToString(); 
        }

然后编译~~ 喝杯茶~~ 搞定~~~~




参考:

https://www.vtk.org/Wiki/VTK/CSharp/ActiViz/Build

http://vtk.1045678.n5.nabble.com/Building-Activiz-7-0-td5737877.html

https://www.vtk.org/Wiki/VTK/CSharp/ActiViz/Build#ActiViz.NET_source

http://vtk.1045678.n5.nabble.com/Activiz-with-VTK6-3-compile-error-CS1577-td5740018.html


Activiz使用

Activiz使用
  • u012526003
  • u012526003
  • 2016-08-08 20:20:23
  • 1118

C#版VTK Activiz7.1版

  • 2017年11月03日 12:42
  • 93.33MB
  • 下载

activiz.net 显示圆柱体

activiz.net 显示圆柱体
  • u012526003
  • u012526003
  • 2017-03-25 12:22:00
  • 856

ActiViz .NET Users Guide

  • 2012年07月29日 06:11
  • 3.56MB
  • 下载

ununtu 14.04 安卓7.0 编译

Android 7.0 编译 1、编译环境    ubuntu 14.04 64位  (必须64位)  gcc   4.8.4 硬盘容量: 100G + 内存:8G  安装ubuntu后,换源,使...
  • qq_24495693
  • qq_24495693
  • 2016-11-23 13:27:30
  • 716

Android 7.0源码编译

本人邮箱:richsjeson@gmail.com欢迎转载,请注明出处。 本文出自自己动手编写插件化 由于笔者的电脑是Mac OSX EI Captian版本,因此本教程所有的操作都是在Mac OSX...
  • richsjesons
  • richsjesons
  • 2016-12-09 23:41:06
  • 3565

关于编译Android7.0环境配置步骤!!!!!!!!!!!!!!!!!!!!!!

1.系统的共享配置: 第一步:将目前系统12.04升级至Ubuntu14.0; 第二步:安装samba共享工具,步骤如下:         1.sudo apt-get update  【此...
  • djwmzyl
  • djwmzyl
  • 2017-02-20 17:14:44
  • 1474

android7.0 编译问题及解决

注意:linux操作系统上编译android 7.0必须使用open-jdk,mac os才可以使用oracle jdk,我的是ubuntu16.04,下面我将我遇到的问题及解决办法做一个陈述,仅供参...
  • zhangmingbao2016
  • zhangmingbao2016
  • 2016-09-29 10:09:50
  • 4553

VMware + ubuntu 编译android7.0

前段时间编译了6.0android6.0源码编译的源码之后 ,最近又编译了7.0,本以为有了前面编译6.0的成功经历这次会顺利很多,no ,还是太年轻了,同样的各种坑,时间并不比之前花的少,下面就来讲...
  • qq_16412311
  • qq_16412311
  • 2017-07-04 14:00:28
  • 461

Latex入门CTeX_2.9.2.163 WinEdt7.0第一课编译

从http://wikka.ctex.org 上下载最新的中文TE X 套装,Windows 用户请下载 CTEX 套装,Linux 用户可以下载 TeXlive 来安装,直接安装就可以了。 基本知...
  • whucv
  • whucv
  • 2012-09-06 18:00:48
  • 18798
收藏助手
不良信息举报
您举报文章:ActiViz 7.0编译记录
举报原因:
原因补充:

(最多只允许输入30个字)