Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает компилятору использовать существующий IFC (.ifc) для текущей компиляции.
Синтаксис
/referencemodule-name=filename
/referencefilename
Аргументы
filename
Имя файла, содержащего данные IFC, предварительно созданные сведения о модуле. Чтобы импортировать несколько модулей, включите отдельный /reference параметр для каждого файла.
module-name
Допустимое имя экспортированного имени блока основного интерфейса модуля или полного имени секции модуля.
Замечания
В большинстве случаев этот параметр не требуется указывать, так как система проектов автоматически обнаруживает зависимости модулей в решении.
Параметр /reference компилятора требует включения /std:c++20 или более поздней версии параметра компилятора (например /std:c++latest). Этот /reference параметр доступен начиная с Visual Studio 2019 версии 16.10.
/reference Если аргумент является безmodule-name, файл открывается filename во время выполнения, чтобы проверить filename имена аргументов определенного импорта. Это может привести к снижению производительности среды выполнения в сценариях с большим количеством /reference аргументов.
Он module-name должен быть допустимым именем основного модуля или полным именем секции модуля. Ниже приведены примеры имен основных интерфейсов модуля:
MM.N.OMyModulemy_module
Ниже приведены примеры полных имен секций модулей:
M:PM.N.O:P.QMyModule:Algorithmsmy_module:algorithms
Если ссылка на модуль создается с помощью module-nameмодуля, другие модули в командной строке не получают поиска, если компилятор обнаруживает импорт этого имени. Например, учитывая эту командную строку:
cl ... /std:c++latest /reference m.ifc /reference m=n.ifc
В приведенном выше случае, если компилятор видит import m; , m.ifc то поиск не выполняется.
Примеры
Учитывая три модуля, как указано в этой таблице:
| Модуль | ФАЙЛ IFC |
|---|---|
M |
m.ifc |
M:Part1 |
m-part1.ifc |
Core.Networking |
Networking.ifc |
Параметры ссылки, использующие filename аргумент, будут следующими:
cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc
Параметры ссылок, которые используются module-name=filename , будут следующими:
cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc
См. также
/scanDependencies (Перечисление зависимостей модуля в стандартной форме)
/sourceDependencies:directives (список зависимостей в header-unit и модулях)
/headerUnit (использование IFC для единицы заголовка)
/exportHeader (создание единиц заголовков)