Programowanie > Inne

Instalacja FreePascala

<< < (3/3)

Paweł Kraszewski:

--- Cytat: snajper_8383 ---
--- Cytat: pkraszewski ---Pascal jest martwy, zimny i sztywny jak Lenin.
--- Koniec cytatu ---
Co masz na myśli? Projekt free pascal jest cały czas rozwijany, tak jak lazarus. Choć trudno się z tobą nie zgodzić z tym, że  lepiej poświęcić naukę na C++ z Qt i Pythona.
--- Koniec cytatu ---
Tak, FPC, Lazarus czy Delphi są dalej rozwijane. Co nie zmienia faktu, że ta technologia to programistyczny dead-end. Coś jak Cobol. Jest rozwijany, ale używany tylko w aplikacjach legacy, gdzie nikt nie ma odwagi (albo potrzeby, bo "it works") przepisać starego kodu na nowszy język. Albo Fortran, który też jest ciągle rozwijany, ale istnieje głównie dla bibliotek napisanych wieki temu i wypolerowanych na wysoki połysk przez pokolenia fizyków, chemików i matematyków (pozdrowienia dla OnaJużWieKogo).


--- Cytat: Żabka ---Szkoła.
--- Koniec cytatu ---
Łomatko. Jaka, jeżeli można spytać? Czy wygląda to na wybór szkoły/prowadzącego, czy też na jakieś narzucone z góry - spoza szkoły - wymagania programowe?


--- Cytat: snajper_8383 ---(...) że  lepiej poświęcić naukę na (...) Pythona.
--- Koniec cytatu ---
I tu się zgadzam, Python jest doskonałym językiem "dydaktycznym". Można poćwiczyć i programowanie strukturalne i obiektowe. Można też poćwiczyć podstawy funkcjonalnego. Ma świetne PyQt do GUI. No i oczywiście jest wieloplatformowy. A na dodatek jest wykorzystywany i "w produkcji" i w zastosowaniach naukowych, więc da się go wykorzystać i po szkole.

Żabka:
Naprawdę baardzo Wam dziękuję za pomoc i cierpliwość.

@tele: Jednak nie skorzystałam z Twojej metody, bo jestem sierota i chyba nie umiem zainstalować pascala: pliki pascala ściągnięte i rozpakowane leżą sobie i możliwe nawet że jest zainstalowany, bo jak wpisuję sudo apt-get fp-ide to otrzymuję informację, że fp-ide jest już w najnowszej wersji. Więc pewnie jestem jeszcze większa sierota i nie umiem tego uruchomić...

@alvaro: próbowałam coś zdziałać Lazarusem jednak muszę się przyznać, że mnie przeraził. Za dużo okien, przycisków, opcji- mimo Twoich wskazówek zaczęłam się gubić. Za to Geany mnie przekonało i chyba tego będę używać. Muszę jeszcze znaleźć moduł Graph i chyba go doinstalować.

@pkraszewski: Liceum, wbrew pozorom- rozszerzona informatyka. Nie wiem dlaczego przerabiamy akurat Pascala, ale z tego co wiem nie tylko my.

Jeszcze raz bardzo dziękuję za odpowiedzi.

alvaro:
Lazarus jest bardzo podobnym IDE do Delphi, ale jeśli wolisz inne środowisko programistyczne czy edytor tekstu to nie ma sensu się męczyć z nim na siłę.

Poniższe polecenie powinno zwrócić informację, że pakiet fp-ide wymaga fp-ide-2.6.2:

--- Kod: ---
apt-cache depends fp-ide
--- Koniec kodu ---
Jakie pliki zostały zainstalowane przez pakiet fp-ide-2.6.2 możesz sprawdzić poleceniem:

--- Kod: ---
dpkg -L fp-ide-2.6.2
--- Koniec kodu ---
Jak łatwo zauważyć program którego szukasz kryje się pod nazwą fp.

Możesz sobie utworzyć skrót w menu. W tym celu stwórz odpowiedni plik *.desktop, np. /usr/share/applications/fp-ide.desktop czy ~/.local/share/applications/fp-ide.desktop o następującej treści:

--- Kod: ---
[Desktop Entry]
Encoding=UTF-8
Name=FP IDE
Comment=FP IDE 2.6.2
Exec=fp
#Icon=lazarus
Terminal=true
Type=Application
Categories=Application;Development;
StartupNotify=true
--- Koniec kodu ---
Oczywiście możesz do tego celu użyć jakiegoś edytora menu, np. alacarte.

Zamiast tworzyć aktywator w menu możesz utworzyć go na pulpicie (~/Desktop/fp-ide.desktop).

Plik wynikowy

Jesteś pewna, że udało Ci się zbudować pliki wynikowe EXE?
To, że pliki mają rozszerzenie exe nie oznacza, że są to programy EXE PE dla Windows.
Najlepiej upewnij się i sprawdź typ pliku wynikowego za pomocą polecenia file:

--- Kod: ---
file program.exe
--- Koniec kodu ---
Jeśli zwrócić coś w poniższym stylu to masz do czynienia z programem dla Windows.

--- Kod: ---
program.exe: PE32 executable for MS Windows (console) Intel 80386 32-bit
--- Koniec kodu ---
Jeśli jednak otrzymasz wynik taki jak poniżej to znaczy, że otrzymałaś binarkę ELF dla systemu Linux.

--- Kod: ---
program.exe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/Linux 2.4.0, stripped
--- Koniec kodu ---

Żabka:
@alvaro: Dzięki za zwrócenie uwagi, bo pokazuje się to drugie. Szukałam wczoraj, czy można coś z tym zrobić i doszłam do wniosku, że jak będę brała program do szkoły, to wezmę plik .pas, który skompiluję na miejscu, bo jeśli dobrze myślę, wtedy powinien się utworzyć windowsowy plik .exe. Chyba, że źle myślę.
W ostateczności mogę brać pendrive'a z LiveCD albo poszukać w pracowni komputera z Linuxem (bywały takie).

alvaro:

--- Cytat: Żabka ---@alvaro: Dzięki za zwrócenie uwagi, bo pokazuje się to drugie. Szukałam wczoraj, czy można coś z tym zrobić i doszłam do wniosku, że jak będę brała program do szkoły, to wezmę plik .pas, który skompiluję na miejscu, bo jeśli dobrze myślę, wtedy powinien się utworzyć windowsowy plik .exe. Chyba, że źle myślę.
W ostateczności mogę brać pendrive'a z LiveCD albo poszukać w pracowni komputera z Linuxem (bywały takie).
--- Koniec cytatu ---
Możesz tworzyć programy dla systemu Windows pod Linuksem. Służy do tego kompilacja skrośna. Pisałem o tym w pierwszym moim komentarzu w tym wątku (dziesiątym od góry).

Kompilacja skrośna

Jak już wcześniej wspomniałem, szczegółowe informacje znajdziesz na wiki projektu freepascal oraz wiki projektu Lazarus.

Postaram się w możliwie prosty sposób przybliżyć cały proces konfiguracji na dystrybucjach bazujących na Ubuntu, w szczególności Kubuntu.

Żeby nie wprowadzać zamieszania zalecam korzystać z pakietów dostępnych na stronie projektu Lazarus na sf.net zamiast tych dostępnych w repozytoriach danej dystrybucji.

Z tego powodu radzę usunąć najpierw dotychczas zainstalowane pakiety:

--- Kod: ---
sudo apt-get remove fpc fpc-source lazarus
--- Koniec kodu ---
Zanim będziemy kontynuować najlepiej zaktualizujmy system:

--- Kod: ---
sudo apt-get update
sudo apt-get upgrade
--- Koniec kodu ---
Możliwe, że zajdzie konieczność zainstalowania dodatkowych zależności (np. libgtk2.0-dev).
Możemy to zrobić już teraz:

--- Kod: ---
sudo apt-get install libgtk2.0-dev
--- Koniec kodu ---
Wróćmy do FPC.
Odpowiednie paczki DEB można znaleźć na wspomnianej już stronie:
- dla systemu 32-bitowego
- dla systemu 64-bitowego

Załóżmy, że mamy system 32-bitowy.
Pobieramy (np. za pomocą wget) obowiązkowo pakiety fpc_2.6.2-0_i386.deb i fpc-src_2.6.2-0_i386.deb oraz opcjonalnie pakiet lazarus_1.0.14-0_i386.deb.

Następnie instalujemy pobrane wcześniej paczki:

--- Kod: ---
sudo dpkg -i fpc_2.6.2-0_i386.deb fpc-src_2.6.2-0_i386.deb lazarus_1.0.14-0_i386.deb
--- Koniec kodu ---
Musimy sprawdzić gdzie zainstalowały się źródła:

--- Kod: ---
$ dpkg -L fpc-src | head
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/fpc-src
/usr/share/doc/fpc-src/changelog.Debian.gz
/usr/share/doc/fpc-src/copyright
/usr/share/doc/fpc-src/changelog.gz
/usr/share/fpcsrc
/usr/share/fpcsrc/2.6.2
--- Koniec kodu ---
Przejdźmy do odpowiedniego katalogu:

--- Kod: ---
cd /usr/share/fpcsrc/2.6.2
--- Koniec kodu ---
Powinien znajdować się tam plik Makefile:

--- Kod: ---
$ ls /usr/share/fpcsrc/2.6.2
compiler  ide  installer  Makefile  Makefile.fpc  packages  rtl  tests  utils
--- Koniec kodu ---
Cały czas będąc w tym katalogu wykonajmy kolejno:

--- Kod: ---
sudo make all OS_TARGET=win32 CPU_TARGET=i386
--- Koniec kodu ---
a następnie:

--- Kod: ---
sudo make crossinstall OS_TARGET=win32 CPU_TARGET=i386
--- Koniec kodu ---
Musimy jeszcze edytować plik /etc/fpc.cfg.

Dla bezpieczeństwa utwórzmy najpierw jego kopię:

--- Kod: ---
sudo cp /etc/fpc.cfg /etc/fpc.cfg.bak
--- Koniec kodu ---
Edytujemy go za pomocą np. nano:

--- Kod: ---
sudo nano /etc/fpc.cfg
--- Koniec kodu ---
Musimy zamienić następujące trzy linie:

--- Kod: ---
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
--- Koniec kodu ---
na poniższe:

--- Kod: ---
#-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
#-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
#-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl

#IFDEF win32
-Fu/usr/local/lib/fpc/$fpcversion/units/i386-win32/
-Fu/usr/local/lib/fpc/$fpcversion/units/i386-win32/*
-Fu/usr/local/lib/fpc/$fpcversion/units/i386-win32/rtl
-XPi686-mingw32-
-FD/usr/local/lib/fpc/$fpcversion
#ELSE linux
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/*;~/fpc/rtl/linux
#ENDIF
--- Koniec kodu ---
/etc/fpc.cfg

W tym momencie zyskujemy możliwość kompilacji skrośnej za pomocą fpc.

Zamiast tworzyć binarkę ELF dla systemu Linux można - podając przełączniki -Twin32 -Pi386 - utworzyć plik wykonywalny EXE PE dla systemu Windows (32-bit):

--- Kod: ---
$ fpc -Twin32 -Pi386 project1.pas
Free Pascal Compiler version 2.6.2 [2013/03/17] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling project1.pas
Linking project1.exe
16 lines compiled, 0.2 sec , 134128 bytes code, 27356 bytes data
$ file project1.exe
project1.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows
$ fpc -MObjFPC -Scghi -O1 -Twin32 -Pi386 -g -gl -vewnhi -Fu. -l project1.pas
int: Start of reading config file /etc/fpc.cfg
Hint: End of reading config file /etc/fpc.cfg
Free Pascal Compiler version 2.6.2 [2013/03/17] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling project1.pas
Linking project1.exe
16 lines compiled, 0.2 sec , 141136 bytes code, 27532 bytes data
2 hint(s) issued
$ file project1.exe
project1.exe: PE32 executable (console) Intel 80386, for MS Windows
--- Koniec kodu ---
Geany

Jeśli nie chcesz używać rozbudowanego IDE takiego jak Lazarus to możesz korzystać chociażby z Geany.

Radzę do niego doinstalować dodatkowe wtyczki:

--- Kod: ---
sudo apt-get install geany geany-plugins
--- Koniec kodu ---
Możesz ustawić odpowiednie opcje kompilacji w tym edytorze.
W tym celu mając otwarty plik źródłowy *.pas z menu Build wybierz Set Builds Commands.
W nowo otwartym oknie w polu Compile zamień:

--- Kod: ---
fpc "%f"
--- Koniec kodu ---
na:

--- Kod: ---
fpc -Twin32 -Pi386 "%f"
--- Koniec kodu ---


Od tego momentu będziesz mogła w prosty sposób budować program dla Windows wybierając opcję kompilacji z poziomu Geany (domyślnie wciskając po prostu F8).

Nawigacja

[0] Indeks wiadomości

[*] Poprzednia strona

Idź do wersji pełnej