/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)