h1

Gcc error: “Description Resource Path Location Type changes meaning” y “Type declaration of”

23/11/2009

Compilando un proyecto con las librerías Boost se pueden producir  simultaneamente los siguientes errores:

Description    Resource    Path    Location    Type changes meaning of ‘special_values_parser’ from ‘class boost::date_time::special_values_parser<date_type, charT>’ MyProject line 34, external location: /usr/include/boost/date_time/special_values_parser.hpp   C/C++ Problem

Description    Resource    Path    Location    Type declaration of ‘void boost::date_time::date_input_facet<date_type, CharT, InItrT>::special_values_parser(boost::date_time::special_values_parser<date_type, charT>)’    MyProject   line 560, external location: /usr/include/boost/date_time/date_facet.hpp    C/C++ Problem


Son debidos a un cambio de versión de GCC. Por tanto, las soluciones serían:

Solución #1)

Como workaround, añadir el parámetro “-fpermissive” en la compilación para convertir este tipo de errores en warnings.

Solución #2) RECOMENDADA

Aunque resulte evidente, lo más conveniente es arreglar el código para cumplir la normativa de GCC, según se indica en el apartado GCC Name lookup changes. En el caso de Boost, basta con actualizar las librerías Boost a la versión 1.40 o posterior (aunque puede que el bug se halla solucionado en previas versiones). En el caso de Debian/Ubuntu se pueden localizar los paquetes aquí ó en el siguiente repositorio:

deb http://ftp.de.debian.org/debian sid main

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.