Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Informa ao compilador para usar um IFC existente (.ifc) na compilação atual.
Sintaxe
/referencemodule-name=filename
/referencefilename
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:
MM.N.OMyModulemy_module
Exemplos de nomes completos de partição de módulo incluem:
M:PM.N.O:P.QMyModule:Algorithmsmy_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)