Pracowałem nad niektórymi skryptami do budowania i to mnie nurtuje. Chcę mieć pewność, że jesteśmy niezależni od ustawień środowiska, ale aby być tego pewnym, czuję potrzebę zrozumienia, w jaki sposób/gdzie ustawienia są używane przez narzędzia.Jaka jest różnica między zmiennymi środowiskowymi LIB i LIBPATH dla MS Visual C/C++?
Wiersz polecenia programu Visual Studio i/lub plik vcvarsall.bat ustawia dwie różne zmienne środowiskowe: LIB i LIBPATH. Wartości są różne, ale częściowo pokrywają się. Oto wartości z mojego systemu:
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;
Chciałbym tylko zrozumieć uzasadnienie posiadania dwóch różnych zmiennych - trochę więcej niż oczywisty fakt, że LIBPATH przynosi więcej bibliotekami. Próbowałem już to sprawdzić, ale nie znalazłem jasnej definicji, kiedy każdy jest używany przez linker i/lub środowisko dev.
A jednak/LIBPATH jest opcją dla linii komend linera, która przesłania środowisko. Aha! ... Teraz to widzę. Doc wskazuje, że/LIBPATH zastępuje zmienną środowiskową LIB, a nie zmienną środowiskową LIBPATH. To tylko (zły) zbieg okoliczności. Dzięki. –