Error usando Cygwin: "colect2: error fatal: ld terminada con señal 11 [falla de separación]"

Estoy tratando de usar Cygwin para descargar openslide (construyendo nativamente en Windows) en un sistema Windows 10 x64. Me encontré con un error antes relacionado con chk_fail y establecer la línea en el archivo de construcción con -D_FORTIFY_SOURCE a 0 en lugar del predeterminado (2). Probablemente puedas decir que no sé lo que estoy haciendo. Pero tengo un nuevo error en relación con un error de memoria de lo que he leído. Intenté borrar toda la carpeta del paquete incluyendo los ficheros y los archivos de objetos, luego clonar de nuevo y reconstruir, pero no funcionó. ¿Puede alguien decirme qué está pasando aquí y cómo arreglarlo? Sería muy apreciado.

Scanning dependencies of target ziptool
[ 90%] Building C object src/CMakeFiles/ziptool.dir/ziptool.c.obj
[ 90%] Linking C executable ziptool.exe
collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped
compilation terminated.
make[2]: *** [src/CMakeFiles/ziptool.dir/build.make:109: src/ziptool.exe] Error 1
make[2]: *** Deleting file 'src/ziptool.exe'
make[1]: *** [CMakeFiles/Makefile2:442: src/CMakeFiles/ziptool.dir/all] Error 2
make: *** [Makefile:161: all] Error 2
Failed: make $parallel (line 417)

Pregunta hecha hace 3 años, 4 meses, 28 días - Por byteninja


3 Respuestas:

  • Resolví este problema. En primer lugar, no te molestes en construir este paquete usando Cygwin. No funcionará debido a problemas de dependencia y no hay registro para el control de versiones en el paquete README.

    Para cualquier otro que tenga este problema como yo, puede descargar las últimas versiones del código aquí: https://github.com/openslide/openslide-winbuild/releases y elige el último.

    La primera pip instalada openslide-python. Luego me mudé openslide-win64-20171122 (de Github) en anaconda3/paquetes de sitio (no es necesario, pero agradable), y luego de anaconda3/paquetes/openslide abrí bajo nivel.py.

    En lowlevel.py, necesita añadir las siguientes líneas: (al principio después de importar bibliotecas)

    os.environ['PATH'] = "path/to/openslide-win64-20171122/bin" + ";" + os.environ['PATH']
    

    También puede cambiar esta línea:

    if platform.system() == 'Windows':
        _lib = cdll.LoadLibrary('libopenslide-0.dll')
    

    a esto:

    if platform.system() == 'Windows':
        _lib = cdll.LoadLibrary(util.find_library("libopenslide-0.dll"))
    

    para que busque el archivo libopenslide-0.dll. Entonces no olvides añadir from ctypes import util al principio.

    Respondida el Dec 17, 2020 a las 06:40 - por algorithmalchemist

    Votos positivos: 0 | Votos negativos: 0

  • El error "ld terminated with signal 11 [Segmentation fault]" en Cygwin generalmente indica un problema de memoria o una falla en el enlace de la librería. Aquí tienes algunas sugerencias para intentar solucionar este problema:

    • Verifica la memoria disponible: Asegúrate de que tienes suficiente memoria disponible en tu sistema para compilar y vincular el programa correctamente. Si es posible, intenta aumentar la cantidad de memoria asignada o cierra otras aplicaciones en ejecución para liberar recursos.
    • Actualiza Cygwin y los paquetes relacionados: Asegúrate de tener la última versión de Cygwin y todos los paquetes necesarios instalados. Puedes usar el gestor de paquetes de Cygwin para actualizar todo a la última versión.
    • Revisa las configuraciones de compilación: Verifica las opciones de compilación y enlace que estás utilizando en tu proyecto. Es posible que alguna configuración esté causando conflictos o errores en el proceso de enlace.
    • Revisa los archivos de configuración del proyecto: Verifica los archivos de configuración del proyecto (como CMakeLists.txt) para asegurarte de que todas las rutas y dependencias estén configuradas correctamente.
    • Realiza una compilación limpia: Intenta realizar una compilación limpia eliminando todos los archivos generados previamente (como los archivos de objetos y binarios) y luego volviendo a compilar el proyecto desde cero.
    • Consulta la documentación de Cygwin: Revisa la documentación oficial de Cygwin y busca posibles problemas conocidos relacionados con el error "ld terminated with signal 11 [Segmentation fault]". Es posible que encuentres información adicional que te ayude a resolver el problema.

    Espero que estas sugerencias te sean de ayuda para solucionar el error que estás experimentando al compilar tu proyecto con Cygwin. ¡Buena suerte!

    Respondida el Dec 18, 2020 a las 06:42 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • El error "collect2: fatal error: ld terminada con señal 11 [falla de separación]" generalmente es causado por un problema con tu configuración de compilación o con el código fuente. Aquí tienes algunos pasos que puedes seguir para intentar resolver el problema:

    • Verifica tu configuración de compilación: Asegúrate de estar utilizando la versión correcta del compilador y las bibliotecas. Además, verifica que no haya configuraciones de compilación personalizadas que puedan estar causando el problema.
    • Comprueba el código fuente: Revisa cuidadosamente el código fuente en busca de errores o problemas de sintaxis. Asegúrate de que todas las bibliotecas y dependencias necesarias estén incluidas y vinculadas correctamente.
    • Limpia y reconstruye: Intenta limpiar el proyecto eliminando todos los archivos compilados y objetos. Luego, vuelve a compilar el proyecto desde cero.
    • Usa depuradores: Utiliza herramientas de depuración como GDB o LLDB para identificar la ubicación exacta del error. Esto puede ayudarte a depurar el problema y encontrar la causa raíz.
    • Busca ayuda en línea: Consulta foros y documentación en línea para ver si otros han encontrado problemas similares y han encontrado soluciones.

    Si aún tienes problemas para resolver el error, proporciona más información sobre tu configuración específica, el sistema operativo y cualquier otro detalle relevante que pueda ayudar a identificar el problema.

    Respondida el Dec 18, 2020 a las 06:43 - por Gemini

    Votos positivos: 0 | Votos negativos: 0