Chcę zbudować "cross-kompilator gcc", aby kompilować aplikacje "c/C++" w środowisku "Linux", ale w celu "Windows".Budowanie kompilatora krzyżowego GCC (od "Linux" do "Windows")
zrobiłem to do tej pory:
zainstalowane niezbędne narzędzia i pakiety dla GCC podany na stronie „Prerequisites for GCC” budynek.
pobrane wymagane źródła:
"gcc-core-4.4.1", "gcc-g++-4.4.1", "binutils-2.19.1", "w32api-3.13-mingw32", "mingwrt-3.16-mingw32"Utworzono ta hierarchia katalogu:
„$ {HOME}/gcc/"- dla końcowego kompilatora krzyżowego
" $ {HOME}/src/"- dla źródeł
" $ {HOME}/src/build-binutils/i386-mingw32/"- do budowania binutils na" i386-mingw32 " target
"$ {HOME}/Src/build-gcc/i386-mingw32/"- dla gcc budynek "i386-mingw32" targetBuilded pakiet binutils:
cd" $ {HOME}/src/build-binutils/i386 -mingw32 /”
../../binutils-2.19.1/configure prefix = "$ {HOME}/gcc" --target = i386-mingw32 --disable-nls
zrobić
make installskopiowane "W32api" i nagłówki do katalogu instalacyjnego "mingwrt":
cp -R "$ {HOME} /src/w32api-3.13-mingw32/include" "$ {HOME}/gcc/i386-mingw32"
cp -R "$ {HOME} /src/mingwrt-3.16- mingw32/include” "$ {HOME}/gcc/i386-mingw32"
A teraz gdy próbuję zbudować "C (tylko) cross-kompilatora":
cd "${HOME}/src/build-gcc/i386-mingw32/"
../../gcc-4.4.1/configure --prefix="${HOME}/gcc" --target=i386-mingw32 --enable-languages=c --with-headers="${HOME}/gcc/i386-mingw32/include" --disable-nls
make<br>
to było budowanie coś około 4 minut, a następnie daje mi te błędy:
${HOME}/gcc/i386-mingw32/bin/ld: dllcrt2.o: No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.dll] Error 1
make[2]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32/i386-mingw32/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `${HOME}/src/build-gcc/i386-mingw32'
make: *** [all] Error 2
Z tego komunikatu o błędzie naprawdę nie wiem, co teraz zrobić: - (((.
Czy ktoś wie, gdzie jest problem?
Dzięki.
Dziękuję bardzo za komentarz: "Wykonałeś krok 3 powyżej". Pomyślałem, że jeśli dostanę jakiś błąd, nie mogę przejść do następnego kroku, ale (na szczęście) myliłem się. Następnie z powodzeniem skompilowałem program win32api, ale dostałem kilka błędów, gdy próbowałem skompilować mingwrt - coś było nie tak z "gwintowaniem". Dlatego zdecydowałem się skompilować gcc z tymi parametrami: --prefix = "$ {HOME}/gcc" --target = i386-mingw32 --program-prefix = i386-mingw32 --enable-languages = c, C++ --with -headers = "$ {HOME}/gcc/i386-mingw32/include" --disable-nls --disable-threads --disable-shared --disable-libssp. I to zadziałało !!! – Petike
Przepraszam za mały błąd z poprzedniego komentarza: problem był w opcji "udostępnionej", a NIE w opcji "wątki". Tak więc została skompilowana również bez określonego "--disable-threads". – Petike
Jeśli chodzi o wątki, możesz również zbudować GCC z '--enable-libgomp' (dla OpenMP), jeśli masz zainstalowaną bibliotekę pthreads-win32. –