Tengo una pregunta sobre cómo se relacionan las constantes definidas en math.h._HUGE y __IMP__HUGE en "math.h"
En visual studio 2010, estoy construyendo una biblioteca dll C++ de 64 bits con "MD" que usa una biblioteca de terceros que hace uso de "HUGE_VAL". Desde el encabezado "math.h", parece que "HUGE_VAL" se define como "_HUGE". Cuando trato de instalar, da como resultado un error de vinculación
error LNK2001: sin resolver símbolo _HUGE externa
Después de hacer algunas google, creo _HUGE deberían definirse en msvcrt.lib. MSVCRT.lib está vinculado, pero no vinculé libcmt.lib porque podría causar errores de redefinición.
Lo que me parece extraño es que cuando creo un programa de consola simple que utiliza HUGE_VAL y el uso/prolijo como una opción enlazador, muestra _ IMP _HUGE siendo vinculado.
Lo que realmente me llama la atención es en qué etapa se convierte _HUGE en _ IMP _HUGE? Además, ¿alguien más ha obtenido el error _HUGE no resuelto y alguien tiene alguna idea de cómo podría solucionarse?
Gracias por leer la pregunta larga y por cualquier idea.
No sé nada sobre Visual Studio (solo estoy usando GCC en Linux) pero HUGE_VAL es estándar. ¿Quizás necesites pedirle a tu compilador que siga estrictamente un nuevo estándar? –
Está mezclando archivos .obj/.lib compilados con/MT. No puede mezclar, todo el código vinculado necesita usar la misma configuración. –