ITK VTK CTK QT 跨平台联合开发之 四 <Mac OS X篇>

来源:互联网 发布:剪辑声音的软件 编辑:程序博客网 时间:2024/06/05 08:33

接上篇


      都十月份了,还来什么台风,可惜了好端端的国庆长假。这雨一下,路就成了河。哎,只能窝家里了。那就继续在这里玩玩,虽然貌似没童鞋来关注,也不知道这么写有啥意义,这功夫就当聊天吧。


5 联合开发


      该编译的都编译了,接下来就可以玩耍了。因为考虑到跨平台,界面这块就用QT,为了产生各平台的工程文件,可以使用qmake。但是为了更好地发挥,还是选择使用CMake。使用CMake的话,必须先了解下它的基本知识。这里就不系统展开了,用到什么提什么比较好。首先要知道的就是需要编写CMakeLists.txt,而且可能还不止一个。


    (1)VTK + QT: QVTK

      首先,我们可以从头写CMakeLists.txt,但是一般更好的做法是参考一下已有的例子。好了,我们找到VTK提供的例子,在哪里呢。嘿嘿,不用找了,老夫早收藏了:http://www.vtk.org/Wiki/VTK/Examples/Cxx#Qt。

 CMakeLists.txtcmake_minimum_required(VERSION 2.8) PROJECT(RenderWindowUIMultipleInheritance) find_package(VTK REQUIRED)include(${VTK_USE_FILE}) find_package(Qt4 REQUIRED)include(${QT_USE_FILE}) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})  file(GLOB UI_FILES *.ui)file(GLOB QT_WRAP *.h)file(GLOB CXX_FILES *.cxx) QT4_WRAP_UI(UISrcs ${UI_FILES})QT4_WRAP_CPP(MOCSrcs ${QT_WRAP})add_executable(RenderWindowUIMultipleInheritance MACOSX_BUNDLE ${CXX_FILES} ${UISrcs} ${MOCSrcs}) if(VTK_LIBRARIES)  if(${VTK_VERSION} VERSION_LESS "6")    target_link_libraries(RenderWindowUIMultipleInheritance ${VTK_LIBRARIES} QVTK)  else()    target_link_libraries(RenderWindowUIMultipleInheritance ${VTK_LIBRARIES})  endif()else()  target_link_libraries(RenderWindowUIMultipleInheritance vtkHybrid QVTK vtkViews ${QT_LIBRARIES})endif()


      上面是VTK提供的某个例子,很多地方我们还要改。熟悉CMake的童鞋自然不用多说,但是貌似很多童鞋不大爱这套,说实在的,如果要好好学习老外的代码,还是得花点时间玩一下。如果在Linux之类下面玩过程序的童鞋肯定知道,写Makefile不是那么容易的事情,这不有了CMake,还是要方便不少,而且还跨平台,太好了。好吧,对于这个CMakeLists.txt,接下来边改边解释。

待续 。。。