/reference
(Use o módulo nomeado IFC)
Informa ao compilador para usar um IFC existente (.ifc
) na compilação atual.
Sintaxe
/reference
module-name=filename
/reference
filename
Argumentos
filename
O nome de um arquivo que contém dados IFC, que são informações de módulo predefinidas. Para importar mais de um módulo, inclua uma opção /reference
separada para cada arquivo.
module-name
Um nome válido de unidade de interface do módulo primário exportado ou o nome completo da partição do módulo.
Comentários
Na maioria dos casos, você não precisará especificar essa opção porque o sistema de projeto descobre dependências de módulo em uma solução automaticamente.
A opção do compilador /reference
exige que você habilite a opção do compilador /std:c++20
ou posterior (como /std:c++latest
). A opção /reference
está disponível a partir do Visual Studio 2019 versão 16.10.
Se o argumento /reference
for um filename
sem um module-name
, o arquivo será aberto em runtime para verificar se o argumento filename
nomeia uma importação específica. Isso pode resultar em um desempenho de runtime mais lento em cenários que têm muitos argumentos /reference
.
O module-name
deve ser o nome válido de uma unidade de interface do módulo primário ou o nome completo da partição do módulo. Exemplos de nomes de interface de módulo primário incluem:
M
M.N.O
MyModule
my_module
Exemplos de nomes completos de partição de módulo incluem:
M:P
M.N.O:P.Q
MyModule:Algorithms
my_module:algorithms
Se uma referência de módulo for criada usando um module-name
, outros módulos na linha de comando não serão pesquisados se o compilador encontrar uma importação desse nome. Por exemplo, considerando esta linha de comando:
cl ... /std:c++latest /reference m.ifc /reference m=n.ifc
No caso acima, se o compilador vir import m;
, m.ifc
não será pesquisado.
Exemplos
Considerando os três módulos conforme listado nesta tabela:
Módulo | Arquivo IFC |
---|---|
M |
m.ifc |
M:Part1 |
m-part1.ifc |
Core.Networking |
Networking.ifc |
As opções de referência ao usar um argumento filename
seriam assim:
cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc
As opções de referência ao usar module-name=filename
seriam assim:
cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc
Confira também
/scanDependencies
(listar dependências do módulo no formato padrão)
/sourceDependencies:directives
(Listar dependências de unidade de módulo e cabeçalho)
/headerUnit
(Usar IFC da unidade de cabeçalho)
/exportHeader
(Criar unidades de cabeçalho)