Konkord na Windowsie - MinGW, Boost

Tagi: boost, C++, cygwin, GCC, kompilacja, konkord, Linux, make, mingw, MSYS, programowanie, Windows,
Kategoria:

Człowiek robi męczące rzeczy z dwóch powodów. Pierwszy powód to czysta ciekawość, a drugi powód to konieczność. Otóż mój kolega posiada Windowsa i chce testować mój program do nauki słówek Konkord, też lubi tak jak uczyć się języków obcych. Niestety nigdy nic nie kompilowałem na Windowsie, musiałem opierać się na skromnych informacjach z Internetu, a najlepsze jest to, że nie było nic po polsku.

MinGW kontra Cygwin

Przechodząc do sedna sprawy, na moim Debianie kompiluję swój program gcc, gdy kiedyś na Windowsie pracowałem, programy kompilowałem MinGW dołączonym do środowiska developerskiego DevC++ (lecz wtedy nie wiedziałem, że używam jakiegoś MinGW). Lecz teraz wiedziałem, że chcą budować aplikację linuksową na Windowsa, mam dwie możliwości, albo zainstalować Cygwina - implementację standardu POSIX dla systemów z rodziny Windows, albo użyć kompilatora MinGW - gcc przeportowanego na systemy z rodziny Windows.

Cygwin zapewniał by mi to, że nie musiałbym zmieniać kodu programu, ani przekompilowywać zewnętrznych bibliotek, których w nim używam, lecz zmusiłbym również tym użytkowników do instalacji Cygwina, a oni raczej nie chcieli by instalować takiego kombajna dla jednego kilkudziesięcokilobajtowego (bez wkompilowanych bibliotek) programu.

MinGW tworzy mi program z rozszerzeniem .exe, który będzie działał na każdym Windowsie i będzie samowystarczalny. Jednak w tym wypadku będę musiał przekompilować biblioteki i je dołączyć do program i czasem zmienić kod programu.

Zdecydowałem się na drugie rozwiązanie, dużo czasu poświęciłem na wstępne przygotowywania, czyli na to, żeby zainstalować i skompilować to, co będzie mi potrzebne do skompilowania programu. Nie żebym aż tak długo się zastanawiał, lecz te pakiety trochę ważą.

...

Przeczytaj cały artykuł i zobacz komentarze

Instalacja i konfiguracja Ubuntu

Tagi: Apache, CD/DVD, dane zapasowe, dysk, G++, GCC, katalog domowy, Linux, montowanie, partycje, prawa dostępu, Ubuntu, uprawnienia, Windows, xserver-xorg,
Kategoria:

Zainstalowałem dwa tygodnie temu Ubuntu i aż dotąd musiałem się zajmować konfiguracją. Nie, to nie jest poradnik dotyczący instalacji Ubuntu. Jest to poprostu zwykły artykuł, w którym opisane jest zmaganie się Ubuntu(i nie tylko :D).

Przygotowanie dysku i kopie danych.

Ja mam dysk 20GB i osoby z małymi dyskami raczej to robią. Aby zainstalować Ubuntu, musiałem zmienić całkowicie rozmiary partycji, a że miałem mało wolnego miejsca, zmienianie by się nie powiodło. Musiałem trochę pokombinować, więc nagrywam wszystkie dane z dysku D:(instalki i dokumenty) i E:(muzyka, której słucham i zdjęcia, tapety) na płytkę DVD. Zrobiłem płytkę multisesyjną, u siebie nagrałem 3,3 GB, później dograłem u kolegi film. Skasowałem wszystkie dane, sformatowałem dysk, utworzyłem partycje GParted z LiveUbuntu i chciałem zainstalować Windowsa, a tu okazuje się, że Windows uznaje utworzoną dla niego partycję(utworzoną przez GParted) jako nieprawidłową. Nie chciało mi się sprawdzać dlaczego, ale prawdopodobnie jak niedawno się dowiedziałem, przyczyną może być, że partycja była surowa.

Instalacja Windowsa i Ubuntu

Więc, nie miałem wyboru musiałem zainstalować tego wina pierwszego, obyło się bez problemów :D(czas 1/2 h), później zainstalowałem Ubuntu(1h). Wczytuję płytę DVD z danymi, a tu tylko film, myślałem, że mnie szlak jasny trafi. Więc wchodzę na Windowsa i szukam po forach(całe szukanie programów i rozwiązania tego problemu 1/2h), okazało się, że Nero(u mojego kolegi, ja u siebie nagrywałem CDburner) nagrywając nową sesję uszkodził starą. Znalazłem więc program do odczytywanie uszkodzonych sesji na CD/DVD i szczęścliwie odczytał wszystkie dane zawarte na płycie DVD, ale gdy skopiowałem jakieś zdjęcie na dysk nie odczytało go. Szukam programu do naprawiania uszkodzonych plików, instaluję go, uruchamiam, a on tylko czyta prawidłowe sesję zapisane na CD/DVD. Na szczęście nie odinstalowałem programu do czytania uszkodzonych sesji CD/DVD, więc kopiuję te dane na dysk(1/2 godziny), później naprawiam uszkodzone pliki(2 godziny), i tak zacząłem coś po wieczorynce(nie chciałe stresować sióstr) i skończyłem o północy.

Montowanie partycji w /home/~nazwa usera

Tak jak w tytule, chciałem sobie zamontować osobną partycję w /home/godlark i osobną w /home/kaśka [kaśka-moja sister], spędziłem na tym cały dzień kombinując z fstab i uprawnieniami. Na drugi dzień nie wytrzymałem i zapytałem na forum.ubuntu.pl , jak się dowiedziałem spędziłem cały czas na daremnie, ponieważ nie mogę w swoim katalogu domowym zamontować partycji. Przy okazji spierdoliłem sobie wyświetlanie plików na Pulpicie, zamiast wyświetlać mi zawartość /home/godlark/Desktop to wyświetlało mi zawartość /home/godlark , więc zmieniam plik /home/godlark/.config/user-dirs.dirs i zmieniam na:
# This file is written by xdg-user-dirs-update # If you want to change or add directories, just edit the line you're # interested in. All local changes will be retained on the next run # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an # absolute path. No other format is supported. # XDG_DESKTOP_DIR="$HOME/Desktop" XDG_DOWNLOAD_DIR="$HOME/Desktop" XDG_TEMPLATES_DIR="$HOME/Szablony" XDG_PUBLICSHARE_DIR="$HOME/" XDG_DOCUMENTS_DIR="$HOME/Dokumenty" XDG_MUSIC_DIR="$HOME/Muzyka" XDG_PICTURES_DIR="$HOME/Obrazy" XDG_VIDEOS_DIR="$HOME/Wideo"
Ale coś spartoliłem, najprowdopodobniej napisałem desktop, a nie Desktop(wielkość liter jest bardzo ważna w Linuxie), więc przekonfigurowuję xserver-xorg i działa. I na kolejny dzień znalazłem nową odpowiedź, w której napisane było, że najelegantsze zrobienie, żeby każdy użytkownik miał osobną partycję ot utworzenie dowiązania symbolinczego, czyli utworzyłem w /home dowiązanie o nazwie godlark do /madia/sda7(moja partycja) i o nazwie kaska od /media/sd8(siostry partycja) i działa. Takie małe spostrzeżenie, dowiązanie w Linuxie to co innego niż skrót w Windowsie, dowiązanie do folderu to takie coś jak folder(można użyć w stosunku do tego dowiązanie polecenia cd).

Instalacja GCC 4.3

W pierwszy piątek maja, mam zamiar zainstalować GCC 4.3, w związku z tym, że w oficjalnych repozytoriach tego nie ma, próbuję kompilować ze źródeł, ale kompilacja GCC jest skomplikowana, bo trzeba używać niestandarodwych poleceń. Więc ściągam po paczce ze repozytoriów Debiana i instaluję, ale przez to zrobiłem na Ubuntu "piekło zależności"; błędem nie było ściąganie ze źródeł Debiana, tylko instalacja w pojedynkę. Reinstaluję Ubuntu, i dzień poszedł na marne. W sobotę dodaję prywatne repozytoria, na których jest GCC 4.3, znalazłem je na https://launchpad.net/~ubuntu-toolchain/+archive. I instalacja poszła jak po maśle.

Konfiguracja Apache2

Ja jestem jakiś niestandardowy i wymagający. Chciałem, aby wpisując http://localhost/godlark/ wyświetlało mi zawartość /home/godlark/Mój_serwis , a nie /var/www/godlark , bawię się uprawnieniami czytam poradniki, szukam na forach nie dalej nie działa pisze 403 Forbidden(coś z prawami dostępu). W końcu ja wpadłem na rozwiązanie, problemem nie były uprawnienia do dowiązania w folderze /var/www/godlark , ani uprawnienia do /home/godlark/Mój_serwis tylko brak praw odczytu albo praw dostępu do katalogu nadrzędnego, czyli /home/godlark ; ja dałem prawa dostępu.

Zaawansowana konfiguracja Linuksa jest dla cierpliwych albo średniozaawansowanych użytkowników, nie polecam eksperymentowania osobom, które chcą używać Linuxa do zwykłych celów desktopowych. Narazie to pierwsze opisane przeżycia z Ubuntu, a będzie ich zapawne o wiele więcej.

Zobacz komentarze