Подтвердить что ты не робот

В чем разница между переменными среды LIB и LIBPATH для MS Visual C/С++?

Я работаю над некоторыми скриптами сборки, и это меня подтачивает. Я хочу быть уверенным, что мы независимы от настроек среды, но для того, чтобы быть уверенным в этом, я чувствую необходимость понять, как/где параметры используются инструментами.

Командная строка Visual Studio и/или файл vcvarsall.bat настраивают две различные переменные среды: LIB и LIBPATH. Значения отличаются друг от друга, но частично перекрываются. Вот значения из моей системы:

LIB=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\lib\win8\um\x86;

LIBPATH=C:\Windows\Microsoft.NET\Framework\v4.0.30319;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\LIB;C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Windows Kits\8.0\References\CommonConfiguration\Neutral;\Microsoft.VCLibs\11.0\References\CommonConfiguration\neutral;

Я просто хотел бы разобраться в обосновании наличия двух разных переменных - немного больше, чем тот очевидный факт, что LIBPATH приносит больше libs. Я попытался найти его, но я не нашел четкого определения, когда каждый из них используется компоновщиком и/или средой dev.

4b9b3361

Ответ 1

LIB предназначен для компоновщика, помогает находить импортные и статические библиотеки.

LIBPATH предназначен для компилятора, помогает находить файлы метаданных. Как библиотеки типов, сборки .NET, файлы WinRT.winmd.