es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

“Externo no resuelto con boost en C++Builder 11 Alexandria”

Tengo un programa simple, tiene un formulario VCL y en el constructor hay este código:

“`c++
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
using namespace boost::locale;
using namespace std;
generator gen;
}

<pre><code><br />Además, estas líneas de inclusión:

“`c++
#include <boost locale.hpp=””>
#include <iostream>

Básicamente, ¡estoy tratando de probar mi instalación de boost! Bueno, estoy obteniendo varios errores de enlace:

[ilink32 Error] Error: Símbolo externo no resuelto 'std::exception::exception()' referenciado en C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\22.0\LIB\WIN32C\RELEASE\LIBBOOST_LOCALE-BCB32C-MT-D-X32-1_70.LIB|codepage
[ilink32 Error] Error: Símbolo externo no resuelto 'boost::locale::impl_win::create_convert(std::locale&, boost::locale::impl_win::winlocale&, unsigned int)' referenciado en C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\22.0\LIB\WIN32C\RELEASE\LIBBOOST_LOCALE-BCB32C-MT-D-X32-1_70.LIB|win_backend
[ilink32 Error] Error: Símbolo externo no resuelto 'boost::locale::impl_win::create_collate(std::locale&, boost::locale::impl_win::winlocale&, unsigned int)' referenciado en C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\22.0\LIB\WIN32C\RELEASE\LIBBOOST_LOCALE-BCB32C-MT-D-X32-1_70.LIB|win_backend
[ilink32 Error] Error: Símbolo externo no resuelto 'boost::locale::impl_win::create_formatting(std::locale&, boost::locale::impl_win::winlocale&, unsigned int)' referenciado en C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\22.0\LIB\WIN32C\RELEASE\LIBBOOST_LOCALE-BCB32C-MT-D-X32-1_70.LIB|win_backend
[ilink32 Error] Error: Símbolo externo no resuelto 'boost::locale::impl_win::create_parsing(std::locale&, boost::locale::impl_win::winlocale&, unsigned int)' referenciado en C:\PROGRAM FILES (X86)\EMBARCADERO\STUDIO\22.0\LIB\WIN32C\RELEASE\LIBBOOST_LOCALE-BCB32C-MT-D-X32-1_70.LIB|win_backend
[ilink32 Error] Error: No se puede realizar el enlace

Al principio pensé que había algo mal con mi instalación de boost, que instalé a través de GetIt. Pero luego parece que todos tienen algún tipo de problema de enlace con boost. Después de buscar por todas partes, no encontré una solución válida para mi problema en particular.

Entonces, ¿qué pasa? ¿Cómo hacer que esto funcione, para aumentar mi productividad en lugar de ser un fragmento de código con errores?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que hay referencias externas no resueltas a las funciones de boost::locale en el código, lo que provoca errores del enlazador. Esto podría deberse a una inconsistencia entre la versión de la biblioteca boost y el compilador utilizado.

    Una posible solución es asegurarse de que ha enlazado correctamente la biblioteca boost en su proyecto. Esto se puede hacer agregando la ruta de la biblioteca boost a la configuración de su proyecto y agregando los archivos de la biblioteca boost necesarios a su proyecto.

    Otra posible solución es intentar utilizar una versión diferente de boost, o compilar boost desde la fuente si es posible. Esto puede ayudar a resolver cualquier problema de compatibilidad con el compilador.

    Además, puede ser útil verificar si hay alguna biblioteca o dependencia en conflicto que podría estar causando problemas con boost. Puede ser útil aislar el código de boost e intentar construir y ejecutarlo por separado para depurar cualquier problema.

    En general, es importante asegurarse de que la instalación de boost esté configurada correctamente y de que no haya conflictos ni problemas de compatibilidad con otras bibliotecas o dependencias para evitar errores del enlazador.

Comments are closed.