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.

¿Cómo trato las advertencias del enlazador como errores con Clang?

Estoy utilizando cmake.

He intentado:

-fatal-warnings (mencionado aquí)

-fatal_warnings (que se menciona con man ld)

¿Se supone que deben usarse con -W?

Me gustaría que todas las advertencias del enlazador en todo el proyecto sean tratadas como errores.

La advertencia que recibo es:

ld: warning: ignorando el archivo libvst2sdk.a, se está compilando para macOS-arm64 pero se está intentando enlazar con un archivo creado en un formato desconocido o no admitido ( 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 0x23 0x31 0x2F 0x32 0x30 0x20 0x20 0x20 )

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir todas las advertencias del enlazador en errores en todo el proyecto, puedes intentar utilizar la bandera -Wl,--fatal-warnings en lugar de simplemente -fatal-warnings.

    En tu caso, la advertencia que estás recibiendo está relacionada con un formato de archivo incompatible para la arquitectura macOS-arm64. Puedes verificar si la biblioteca con la que estás intentando enlazar es compatible con la arquitectura objetivo.

    Cuando uses CMake, puedes configurar la bandera globalmente para todo el proyecto agregando la línea set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--fatal-warnings") en tu archivo CMakeLists.txt de nivel superior.

    Alternativamente, puedes configurar esta bandera solo para objetivos específicos utilizando el comando target_link_options en el archivo CMakeLists.txt de ese objetivo en particular:

    target_link_options(my_target PRIVATE -Wl,--fatal-warnings)
    

Comments are closed.