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.

Compilando Scotch de OpenFOAM en macOS

Estoy intentando compilar la biblioteca scotch incrustada en el repositorio de terceros de OpenFOAM.org aquí. Ejecuté el comando:

make -C ./ThirdParty-dev/scotch_6.0.9/src/

y obtuve el siguiente mensaje de error:

(cd libscotch ;      make VERSION=6 RELEASE=0 PATCHLEVEL=9 scotch && make install)
make                    \
                    CC="gcc"                  \
                    CCD="gcc"                 \
                    scotch.h                    \
                    scotchf.h                   \
                    libscotch.so                    \
                    libscotcherr.so             \
                    libscotcherrexit.so
gcc  -O3 -DCOMMONFILECOMPRESSGZ -DCOMMONRANDOMFIXEDSEED -DSCOTCHRENAME -Drestrict=restrict -DSCOTCHVERSIONNUM=6 -DSCOTCHRELEASENUM=0 -DSCOTCHPATCHLEVEL_NUM=9 dummysizes.c -o dummysizes -Xlinker --no-as-needed  -lz -lm -lrt
ld: opción desconocida: --no-as-needed
clang: error: el enlace del comando falló con el código de salida 1 (use -v para ver la invocación)
make[2]: ** [dummysizes] Error 1
make1: * [scotch] Error 2
make: ** [libscotch] Error 2

No estoy seguro de lo que significa este mensaje de error. Si se está quejando de que scotch no está disponible, es por eso que estoy tratando de compilarlo en primer lugar. Por desesperación, también intenté instalarlo a través de brew install scotch sin éxito. Agradecería si pudiera ayudarme a entender el mensaje de error anterior y resolver el problema.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el enlazador falla con el código de salida 1 debido a una opción desconocida: --no-as-needed. Esto suele ocurrir cuando la versión del enlazador que se está utilizando es incompatible con las opciones de línea de comandos utilizadas. Una solución podría ser cambiar al uso del enlazador GNU (ld.gold), que admite la opción --no-as-needed.

    Para hacer esto, configure el enlazador a ld.gold agregando la siguiente línea al comando make:

    LDFLAGS="-fuse-ld=gold"
    

    El comando actualizado sería:

    make LDFLAGS="-fuse-ld=gold" -C ./ThirdParty-dev/scotch_6.0.9/src/
    

    Esto debería resolver el error del enlazador y permitir la compilación exitosa de la biblioteca scotch.

    Si esta solución no funciona, podría intentar actualizar su versión de gcc o verificar cualquier dependencia de biblioteca en conflicto.

Comments are closed.