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

接上篇


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


5 联合开发


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


    (1)VTK + QT: QVTK

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

 
CMakeLists.txt

cmake_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,接下来边改边解释。

待续 。。。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值