Compartir vía


/reference (Use ifC del módulo con nombre)

Indica al compilador que use un IFC existente (.ifc) para la compilación actual.

Sintaxis

/reference module-name=filename
/reference filename

Argumentos

filename
Nombre de un archivo que contiene datos IFC, que es información del módulo precompilado. Para importar más de un módulo, incluya una opción /reference independiente para cada archivo.

module-name
Nombre válido de un nombre de unidad de interfaz de módulo principal exportado o nombre de partición de módulo completo.

Comentarios

En la mayoría de los casos, no tendrá que especificar este modificador porque el sistema del proyecto detecta automáticamente las dependencias del módulo dentro de una solución.

La opción /reference del compilador requiere habilitar la opción /std:c++20 del compilador o una posterior (como /std:c++latest). La opción /reference está disponible a partir de la versión 16.10 de Visual Studio 2019.

Si el argumento /reference es un filename sin un module-name, el archivo se abre en tiempo de ejecución para comprobar que el argumento filename asigna un nombre a una importación específica. Puede dar lugar a un rendimiento en tiempo de ejecución más lento en escenarios que tienen muchos argumentos /reference.

El module-name debe ser un nombre de unidad de interfaz de módulo principal válido o un nombre de partición de módulo completo. Algunos ejemplos de nombres de interfaz de módulo principal son:

  • M
  • M.N.O
  • MyModule
  • my_module

Algunos ejemplos de nombres de partición de módulo completo son:

  • M:P
  • M.N.O:P.Q
  • MyModule:Algorithms
  • my_module:algorithms

Si se crea una referencia de módulo mediante module-name, otros módulos de la línea de comandos no se buscan si el compilador encuentra una importación de ese nombre. Por ejemplo, véase esta línea de comandos:

cl ... /std:c++latest /reference m.ifc /reference m=n.ifc

En el caso anterior, si el compilador ve import m;, entonces m.ifc no se busca.

Ejemplos

Con los tres módulos que se enumeran en esta tabla:

Módulo Archivo IFC
M m.ifc
M:Part1 m-part1.ifc
Core.Networking Networking.ifc

Las opciones de referencia que usan un argumento filename serían similares a las siguientes:

cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc

Las opciones de referencia que usan module-name=filename serían similares a las siguientes:

cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc

Consulte también

/scanDependencies (Enumerar dependencias de módulo en formato estándar)
/sourceDependencies:directives (Enumeración de dependencias de módulo y unidad de encabezado)
/headerUnit (uso de IFC de unidad de encabezado)
/exportHeader (creación de unidades de encabezado)