Tengo un archivo fuente CPP que usa #if/#endif para compilar por completo en ciertas compilaciones. Sin embargo, esto genera la siguiente advertencia.¿Cuál es la mejor manera de eliminar la advertencia de MS Visual C++ Linker: "warning LNK4221"?
warning LNK4221: no public symbols found; archive member will be inaccessible
Estaba pensando en la creación de una macro para generar una variable ficticia o función que no sería en realidad ser utilizado por lo que este error se iría pero yo quiero para asegurarse de que no causa problemas tales como el uso la macro en múltiples archivos que hace que el enlazador bombardee en símbolos definidos múltiples.
¿Cuál es la mejor manera de deshacerse de esta advertencia (sin simplemente suprimir la advertencia en la línea de comando del enlazador)?
FWIW, estaría interesado en saber cómo hacerlo suprimiendo también la advertencia en la línea de comandos del enlazador, pero parece que el enlazador simplemente ignora todos mis intentos y sigue generando el error.
Otro requisito: la corrección debe ser capaz de resistir construcciones de archivos individuales o compilación unitaria (combinar creaciones de archivos CPP) ya que una de nuestras configuraciones de compilación es una compilación masiva (como una compilación unitaria pero grupos de archivos a granel que un solo archivo maestro de unidad).
¿Qué sintaxis para llamar al enlazador ha intentado (y no funcionó para usted)? –
He intentado "/ ignorar: 4221" para el enlazador y "advertencia #pragma (deshabilitar: 4221)" para el archivo cpp. Ninguno funcionó. – Adisak
Como un aparte, ¿cuál es el propósito de la "construcción unitaria"? –