Oto techniki zmniejszania przestrzeni dyskowej wymaganej do budowania FreeCAD w systemie Windows. Poradnik ten może być przydatny dla tych, którzy mają ograniczoną przestrzeń dyskową (na przykład z powodu dysku SSD) oraz dla tych, którzy chcą uniknąć instalowania pełnego Visual Studio.
Zaleca się, aby przed podjęciem tej próby poznać w praktyce sposób kompilacji w Windows z Qt Creator.
Wymagania:
0. Aby uzyskać pliki kompilatora, należy przejść do innego komputera i zlokalizować rzeczywisty kompilator. Przykładowa ścieżka do kompilatora: drive:\path\to\visual\studio\VC\bin.
1. Skopiuj pliki binarne kompilatora i standardowe biblioteki na inny komputer. To znaczy, skopiuj następujące foldery do C:\Qt\msvc12rip:
2. Zainstaluj Windows SDK. Dla tych, którzy nie wiedzą, jest to zestaw nagłówków, bibliotek i narzędzi do kompilacji programów Windows. Zwróć uwagę, gdzie jest zainstalowany. Przykładowa ścieżka: C:\Program Files (x86)\Windows Kits\8.1
3. Zainstaluj CMake i Qt Creator (tylko kreator, tj. środowisko, a nie rzeczywiste Qt, aby zaoszczędzić miejsce).
4. Skonfiguruj niestandardowy kompilator w Qt Creator. Czytaj dalej, aby dowiedzieć się jak to zrobić.
Ustawienie kompilatora na wersję 32-bitową jest dość proste.
4.1. Skonfiguruj kompilator w zakładce Kompilatory w ustawieniach: Dodaj niestandardowy kompilator:
4.2. W zakładce zestawy dodałem zestaw i skonfigurowałem go w następujący sposób:
INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\Include\um\;C:\Qt\msvc12rip\VC\include\
LIB=C:\Qt\msvc12rip\VC\lib\;C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\
LIBPATH=C:\Qt\msvc12rip\VC\lib\;C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86\
PATH=C:\Qt\msvc12rip\VC\bin\;C:\Program Files (x86)\Windows Kits\8.1\bin\x86\;C:\Qt\git\bin\
Zwróć uwagę na ścieżkę do git.exe w PATH. Jest to opcjonalne, ale jeśli nie zostanie określone, informacje o wersji będą niekompletne w "O programie" FreeCAD.
Najwięcej problemów sprawiła mi konfiguracja części środowiskowej ustawień.
Jest to nieco bardziej skomplikowane niż w przypadku kompilatora 32-bitowego. Głównym problemem było to, że nie ma pliku wykonywalnego nmake w C:\Qt\msvc12rip\VC\bin\x86_amd64, a nmake ciągle używa 32-bitowego kompilatora. Aby przeciwdziałać temu problemowi, należy utworzyć specjalny folder "C:\Qt\msvc12rip\VC\bin\x86_amd64_sa", w którym połączone są mnake i 64-bitowy cl. Czytaj dalej, aby uzyskać instrukcje krok po kroku.
4.1. w C:\Qt\msvc12rip\VC\bin, utwórz folder o nazwie x86_amd64_sa (sa oznacza Stand-Alone, użyj dowolnej nazwy).
4.2. skopiuj zawartość folderu C:\Qt\msvc12rip\VC\bin do folderu x86_amd64_sa (teraz masz tam 32-bitowy kompilator).
4.3. Skopiuj zawartość folderu x86_amd64 do x86_amd64_sa, zastępując przy tym pliki. Teraz masz 64-bitowy kompilator z nmake.
4.4. Skonfiguruj kompilator w zakładce Kompilatory w ustawieniach: Dodaj niestandardowy kompilator:
4.5. W zakładce zestawy dodaj zestaw i skonfiguruj go w następujący sposób:
INCLUDE=C:\Program Files (x86)\Windows Kits\8.1\include\shared\;C:\Program Files (x86)\Windows Kits\8.1\include\um\;C:\Qt\msvc12rip\VC\include
LIB=C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64\;C:\Qt\msvc12rip\VC\lib\amd64\
LIBPATH=C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\
PATH=C:\Qt\msvc12rip\VC\bin\x86_amd64_sa\;C:\Program Files (x86)\Windows Kits\8.1\bin\x64\;C:\Qt\git\bin\
Zwróć uwagę na ścieżkę do git.exe w PATH. Jest to opcjonalne, ale jeśli nie zostanie określone, informacje o wersji będą niekompletne w "O programie" FreeCAD.
Wskazówka: skonfiguruj inną parę zestaw+kompilator do używania jom zamiast nmake, aby umożliwić kompilację wielordzeniową. Konfiguracja jest identyczna z 64-bitową z nmake, z wyjątkiem tego, że Make w zakładce kompilatora powinien wskazywać na jom.exe. Przykładowa ścieżka do jom: C:\Qt\Qt542\Tools\QtCreator\bin\jom.exe (powinieneś być w stanie znaleźć jom w lokalizacji, w którym zainstalowany jest twój Qt creator).
Cała reszta jest identyczna z normalnym sposobem kompilacji FreeCAD.
Wymagania:
Utuchom FreeCAD (CMakeLists.txt) za pomocą Qt creatora, a on zaprosi Cię do uruchomienia cmake. Uruchom go. CMake zbuduje program testowy, aby sprawdzić, czy kompilator działa. Jeśli kompilator nie działa, zostanie wyświetlony błąd informujący o tym i zawierający listę danych wyjściowych kompilacji. Dane wyjściowe kompilacji powinny pomóc zidentyfikować, co idzie nie tak. Oto mała lista typowych błędów:
Aby uruchomić FreeCAD skompilowany z typem "Debug", debugowane wersje redystrybucyjnych bibliotek MSVC2013 (msvcp120d.dll, msvcr120d.dll) muszą być obecne gdzieś, gdzie można uzyskać dostęp za pośrednictwem PATH (tym razem w całym systemie).
Możesz uzyskać te pliki dll z drugiego komputera, na którym znajduje się Visual Studio, z którego pobrałeś kompilator. Alternatywnie, te pliki dll można wyodrębnić bezpośrednio z instalatora Visual Studio, co jest bardzo proste:
Wymagania:
Idea jest bardzo prosta: zamiast kopiować pliki - utwórz linki. W systemie Windows dostępne są do tego celu dowiązania symboliczne. Dowiązanie sprawia, że linkowany plik wydaje się być tam, gdzie jest dowiązanie, ale plik jest faktycznie przechowywany gdzie indziej. Linki można tworzyć za pomocą polecenia wsadowego mklink.
Ponieważ istnieje zbyt wiele plików, aby tworzyć linki ręcznie, należy użyć skryptu wsadowego. Oto przykład takiego skryptu:
links_libpack.bat:
@set libpackpath=C:\_vt\dev\PC\Qt\FreeCAD\libpack\active
@set builddir=%1
pushd %libpackpath%\bin
for %%i in (*) do mklink "%builddir%\bin\%%i" "%libpackpath%\bin\%%i"
for /D %%s in (*) do mklink /d "%builddir%\bin\%%s" "%libpackpath%\bin\%%s"
popd
pause
Pierwsza pętla for tworzy linki do plików, druga pętla - linki do folderów.
Będziesz musiał zmodyfikować ścieżkę do libpack, aby pasowała do twojej. Używaj ścieżek bezwzględnych. Następnie podaj ścieżkę folderu kompilacji FreeCAD (pełną ścieżkę!) do skryptu jako argument.
Ta partia musi być uruchomiona z uprawnieniami administratora (lub można ustawić zezwolenie użytkownikom na korzystanie z mklink w lokalnych ustawieniach zasad bezpieczeństwa w systemie Windows). Partia może się nie powieść, jeśli w ścieżkach znajdują się spacje (może działać, ale nie zostało to przetestowane). Wskazówka: utwórz skrót do pliku links_libpack.bat, skonfiguruj go do uruchamiania jako administrator (we właściwościach skrótu) i przeciągnij folder kompilacji na skrót.