2011-08-31 19 views
8

Tengo una biblioteca C estándar que compila muy bien en Mac OS X usando gcc.MinGW "No se pudo ubicar el punto de entrada de procedimiento libiconv ..."

He examinado los compiladores de C disponibles para Windows, y elegir MinGW por un par de razones:

  • herramientas de MS no son compatibles con C99
  • Cygwin et. Alabama. añade un nivel adicional de complejidad con la emulación POSIX que no quiero
  • no puede obtener lcc-win32 para trabajar

embargo, cuando intento de construir mi biblioteca, me estoy haciendo esto:

enter image description here

estas cosas todo parece muy arcaica, y prácticamente no hay recursos en línea decente que puedo encontrar.

Cualquier ayuda sería muy apreciada.

Gracias.

EDIT:

No importa lo que yo estoy tratando de construir. Incluso si solo hago un solo archivo con una función que agrega dos números. Se bloquea. No parece tener nada que ver con el código fuente o las opciones pasadas a gcc. Creo que esto es un problema con mi configuración MinGW y no con mi proyecto.

+0

Este error se produce cuando está compilando una DLL? –

+0

No importa lo que estoy tratando de construir. Incluso si solo hago un solo archivo con una función que agrega dos números. Se bloquea. No parece tener nada que ver con el código fuente o las opciones pasadas a gcc. – Steve

+1

Está claro que su instalación de mingw está borrosa. ¿Cómo se instaló? –

Respuesta

26

Asegúrese de tener C: \ MinGW \ bin en su ruta antes que cualquier otro directorio que contenga libiconv-2.dll. Aparentemente, el as.exe en algunas distribuciones de MinGW depende de esa DLL, y tener una versión anterior en alguna parte (por ejemplo, las herramientas GnuWin32) hará que as.exe recupere la versión anterior que no tiene el punto de entrada que está buscando. .

Ver:. http://sourceforge.net/tracker/index.php?func=detail&aid=3375870&group_id=200665&atid=974439

Nota - usted debe ser capaz de reemplazar la mayor libiconv-2.dll con la más nueva en \MinGW\bin - la denominación de la DLL debe significa que sea compatible con la anterior (es decir, un software más antiguo que no dependa de las exportaciones más nuevas debe continuar funcionando). Sin embargo, no lo he probado, así que asegúrese de hacer una copia de seguridad si decide intentar reemplazar el DLL en conflicto con el de su instalación de MinGW.

+2

Interesante. SÍ tengo instalado GnuWin32. Déjame probar esto y responderte. También tengo 'C: \ MinGW \ bin' en mi' PATH', pero es * después de * GnuWin32 Creo ... así que si hay un conflicto con GnuWin32, creo que el sistema encontraría primero la versión GnuWin32 * *. Esto definitivamente parece una explicación plausible de lo que está mal aquí. – Steve

+0

Bingo. Desearía poder darte más votos. Este era exactamente el problema (conflicto con GnuWin32). – Steve

+0

Saludos cap. Mientras investigaba lo que sucedía, descubrí que podía compilar cosas si llamaba a gcc mientras mi directorio actual _was_ \ mingw \ bin. En esa instancia, as.exe estaba feliz. Pero cualquier otra pwd y no lo fue. Gracias por esto. Estaba buscando algún tipo de problema dll no coincidente al compilar, no solo que as.exe no se iniciara correctamente. Aclamaciones. – RichColours

2

Además de asegurarse de que C: \ MinGW \ bin está en su RUTA antes que nada, también debe reiniciar su máquina (o posiblemente cerrar la sesión/iniciar sesión) para asegurarse de que su RUTA esté realmente actualizada.

Cuestiones relacionadas