Strona 2 z 2
: 18 lutego 2014, 12:34
autor: FunLnx
Poszło, zainstalowałem make i przeinstalowałem g++. Dziękuje za całą dotychczasową pomoc.
Teraz mam do was kompletnie podstawowe pytania.
Jak żyć jak chce pisać program na windows w systemie linux, czy się da? A raczej chciałbym tak bo prędkość kompilacji jest chyba z 3x szybsza.
Czy da się napisać, aplikacje okienkową, która będzie działała pod Windowsem jak i linux ? Jak w tym wypadku funkcjonują standardowe biblioteki QT jak <QMainWindow>, <QPushButton> itd. Czy niestety trzeba pisać osobno w windows, a osobno w linux.
Jak po prostu uruchomić mój program w systemi linux ? W folderze projektu
Kod: Zaznacz cały
/home/rafal/Pulpit/uild-nienazwany-Desktop_Qt_5_2_1_GCC_32bit-Debug
mam plik wykonywalny, klikam na niego uruchamiam lecz dostaje tylko czarny ekran. To samo dzieje się dla debug i release
Dlaczego nie ma biblioteki <conio.h> która ma funkcje getch(). Co doinstalować ?
: 18 lutego 2014, 13:04
autor: pone13
Jeżeli chodzi o pisanie programów okienkowych w Qt, to możesz je pisać zarówno pod Windowsem jaki i w Linuksie.
Jeżeli chodzi o ich kompilacje i uruchomienie kodu na różnych platformach to będziesz musiał użyć tzw. kompilacji skrośnej.
W przypadku Qt będziesz musiał posiadać wersję biblioteki Qt skompilowaną dla każdej z docelowych platform.
W przypadku kompilacji programu Qt dla Windows na Linuksie będziesz musiał mieć kompilator skrośny dla platformy Windows (MinGW?),
oraz skompilowaną bibliotekę Qt tymże kompilatorem. Bibliotekę Qt niestety ale będziesz musiał skompilować sam.
Prostszym rozwiązaniem tej kwestii jest instalacja windows w maszynie wirtualnej i kompilacja kodu źródłowego bezpośrednio pod Windowsem.
Dlaczego nie ma biblioteki <conio.h> która ma funkcje getch(). Co doinstalować ?
conio.h nie jest częścią biblioteki standardowej, ani też nie należy do standardu POSIX.
Podobną funkcjonalność w Linuksie dostarcza biblioteka ncurses, jest tam chyba też funkcja getch.
Co do uruchomienia programu to niestety przydał by się kod źródłowy do wglądu.
: 18 lutego 2014, 13:42
autor: FunLnx
No to trochę dużo potrzebuje. Jeśli sobie nie poradzę w sposób, który piszesz to zrobię to w mniej inteligenty sposób, po prostu skopiuje działający kod pod linuxem, do notatnika, uruchomię QT na win i wkleję. Z tego co widzę definicje funkcji nie różnią.
Co do uruchomienia programu to niestety przydał by się kod źródłowy do wglądu.
Co tu podawać
Kod: Zaznacz cały
#Include <iostream>[/color]
[color=#333333]int main()[/color]
[color=#333333]{
[/color]int a;
[color=#333333]cout << "Helo !" << endl;
[/color]cout <<"Wprowadz liczbe" << endl;
cin >> a;
return 0;
[color=#333333]}[/color]
Program uruchamia się w załączonym przeze mnie terminalu tak, że przeciągam ikonkę upuszczam na terminal mam ścieżkę i enter, ale nie chce się nic uruchomić klikając na niego.
: 18 lutego 2014, 13:54
autor: pone13
Żeby się uruchomił sam terminal 'po kliknięciu' musiałbyś stworzyć odpowiedni 'desktop entry' - plik z rozszerzeniem .desktop i ustawić w nim opcję uruchamiania w terminalu (Terminal=true), więcej info:
https://wiki.archlinux.org/index.php/Desktop_Entries.
Dopiero za pomocą takiego 'skrótu' uruchamiasz program, który wymaga terminala.
Ale na co ci to na tym etapie? Trudno jest otworzyć terminal wejść w katalog projektu i odpalić program?
: 18 lutego 2014, 14:13
autor: FunLnx
Nie nie trudno, ale nauczony jestem z win, że kilka się w exe i działa. Z tego co widzę, aplikacje okienkowa (prosta klasa QMainWindow) tak działa klik i mam okno. Rozumiem podany przez Ciebie sposób, tworzyłem tak kosz i mój komputer. Czyli na chwilę obecną wszystko jasne.
Dziękuję bardzo za pomoc.
: 18 lutego 2014, 14:17
autor: Rafal_F
Większość środowisk programistycznych umożliwia uruchomienie zbudowanego programu przyciskiem w menu, bądź skrótem klawiszowym.
: 18 lutego 2014, 14:40
autor: FunLnx
I tak jest w QT. Tylko mi chodziło o uruchamianie tego programiku po wyłączeniu QT. Myślałem, że jak wejdę w katalog z debug, albo release i nadusze na program to się uruchomi tak od ręki jak w win.
: 18 lutego 2014, 14:55
autor: Rafal_F
Programy uruchomiają się jak się na nie kliknie (tak to przynajmniej wygląda w większości menedżerów plików), problem w tym że w przypadku programów konsolowych wszystkie wyniki zostają wyświetlone w konsoli tty na której uruchomione jest środowisko graficzne. Terminale można zmieniać wciskając alt+ctrl+Fx (za x podstaw cyfry).
W sumie jest to logiczne, bo przecież w swoim programie nigdzie nie tworzysz żadnego okna. Z programami graficznymi nie ma tego problemu, bo jak sama nazwa wskazuje tworzą interfejs graficzny.
: 18 lutego 2014, 16:31
autor: FunLnx
Rozumiem już problem, myślę, że póki co w tej materii nie mam więcej pytań. Jeszcze raz dziękuję za pomoc
: 12 kwietnia 2014, 20:54
autor: klavierkrk
FunLnx pisze:
Dlaczego nie ma biblioteki <conio.h> która ma funkcje getch(). Co doinstalować ?
polecam gconio:
http://www.wence.vandermeersch.org/gconio/
http://www.wence.vandermeersch.org/gconio/gconio.h