zoukankan      html  css  js  c++  java
  • CGAL+QT4.84+Boost1.53 错误[Parse error at "BOOST_JOIN"]

    安装CGAL后,运行demo程序出现[Parse error at "BOOST_JOIN"]这样的错误字样。

    解决方案主要是参考这个网址。
    https://bugreports.qt-project.org/browse/QTBUG-22829
    由于是英文,在昨晚状态不佳的情况下,我硬是没看懂。接下来说说这个上面的讨论情况和我自己的解决方案。
    上面的问题描述大体是这样:我原来安装的是Qt+boost1.47,后来我将boost升级到boost1.48,结果就出现这样的问题(我的boost为1.53版本):
    "Parse error at "BOOST_JOIN", pointing to boost/type_traits/detail/has_binary_operator.hp(50)
    然后我将boost换回1.47就没有这样的问题了。将我的问题向boost小组报告,结果是Qt的moc编译器和boost不兼容的问题。
    讨论了几种解决方案(绿色的表示最可行的解决方案,可以只关注绿色的部分):
     
    解决方案1:

    能引起moc编译器崩溃的BOOST_JOIN 宏主要在这几个文件中:

    • boost ype_traitsdetailhas_binary_operator.hpp
    • boost ype_traitsdetailhas_postfix_operator.hpp
    • boost ype_traitsdetailhas_prefix_operator.hpp

    他们最终被包含(原作者认为)在:

    • boost ype_traitshas_operator.hpp

    has_operator.hpp 使用header guards "BOOST_TT_HAS_OPERATOR_HPP_INCLUDED", 因此组织moc对含有BOOST_JOIN的宏进行编译。

    对于使用cmake的用户,具体操作是:

    QT4_WRAP_CPP(sources ${moc-sources} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)

    解决方案2:

    通过这个 方法#ifndef Q_MOC_RUN,使moc看不见使用了带有BOOST_JOIN宏头文件的头文件 

    #ifndef Q_MOC_RUN  
    #include <boost/python.hpp>
    #endif
    解决方案3: 

    Qt5.0已经解决moc的这个问题了。所以可以选择安装Qt5.0,但是Qt5.0只能安装在VS2010以上,而我使用的是VS2008,因此,我没有进行尝试。

    自己的解决方案(可以说是最懒惰的方法了)

    将boos1.53换成boost1.47。

    另外,我的软件版本为:

    改动前:CGAL4.1+Boost1.53+Qt4.8.4+libQGLViewer2.3.17

    改动后:CGAL4.1+Boost1.47+Qt4.8.4+libQGLViewer2.3.17

    另外,我的安装过程主要参考CGAL的网站:

    http://www.cgal.org/windows_installation.html

    说明:以上,对于那个英文网站的理解也许还有些问题,望指正!另外,由于不大熟悉cmake,因此解决方案1理解的不是很透彻,如果有理解的可以指导一下,十分欢迎!并且解决方案1并不能解决所有的问题,正如接下来的讨论一样,为BOOST_JOIN宏不只在那三个文件中,其他的文件也包含这个宏。解决方案2个人觉得用起来很麻烦,我尝试了很久也没有把所有的引用了包含BOOST_JOIN宏的头文件的头文件找出来。解决方案3个人觉得可行! 
  • 相关阅读:
    HPE Proliant DL380 GEN10服务器配置iLO 5/RAID/安装系统
    centos7安装oracle 11g
    服务器 swap分区使用率高的原因分析及增加swap空间
    mongodb操作记录
    为我的理想和执着的梦想继续前进!
    解决办法-HTTP 错误 401.3 未经授权:访问由于 ACL 对所请求资源的设置被拒绝。
    淘金归来:论坛如何显示IP
    2009年牛起来~~~
    通过.NET访问 Oracle数据库
    电脑小技巧 玩转电脑!
  • 原文地址:https://www.cnblogs.com/jast/p/4141228.html
Copyright © 2011-2022 走看看