Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z uruchomieniem programu na UBUNTU.

Ostatnio zmodyfikowano 2016-01-10 08:07
Autor Wiadomość
Piastlis
Temat założony przez niniejszego użytkownika
Problem z uruchomieniem programu na UBUNTU.
» 2016-01-07 02:27:27
Dziś zainstalowałem UBUNTU i na nim code::blocks.Jak na razie zrekompilowałem na nim kilka projektów konsolowych.Wszystko ładnie działa w ramach code::blocks ale programy nie uruchamiają się bezpośrednio.O co tu chodzi? 

Ps.
Programy się uruchamiają z terminalu.Ale jak to zrobić by same go uruchamiały ?
P-143040
mateczek
» 2016-01-07 08:32:05
możesz sobie zrobić skrót do programu. Skrót w Ubuntu wygląda tak!!!
nazwa pliku - mojProgram.desktop

treść pliku

[Desktop Entry]
Version=1.0
Name=MyProgramInTerminal
Exec=gnome-terminal -e "/home/tygrys/QtProject/build-untitled18-Desktop-Debug/untitled18"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

"/home/tygrys/QtProject/build-untitled18-Desktop-Debug/untitled18" - pełna ścieżka do programu który chcesz uruchomić w terminalu
P-143042
Piastlis
Temat założony przez niniejszego użytkownika
» 2016-01-08 20:18:21
Skrót ma jedną wadę.Nie można można z niego korzystać wewnątrz programu c++ (instrukcja system). Gdyby się nawet to udało to w przypadku zmiany parametrów trzeba by było modyfikować plik desktop.
P-143139
Kaikso
» 2016-01-09 00:05:31
Program konsolowy uruchamia się w konsoli na tym to polega. Skoro uruchamia Ci się w terminalu to znaczy że wszystko jest dobrze.
P-143153
Piastlis
Temat założony przez niniejszego użytkownika
» 2016-01-09 01:53:42
Zależy mi na innym efekcie.Program ma pracować w tle bez efektów na pulpicie a konsola ma się uruchamiać w sytuacjach krytycznych.

Przekombinowałem :)

Konstrukcja która umożliwia uruchomienie programu w terminalu z wewnątrz programu w c++ to:

C/C++
#include <iostream>
#include <stdlib.h>
using namespace std;
int main( int argc, char * argv[] )
{
    string sciezka = "gnome-terminal -e \"\/home\/darek\/Dokumenty\/pierwszyprojekt\/bin\/Debug\/pierwszyprojekt ";
    sciezka = sciezka + argv[ 1 ];
    sciezka = sciezka + "\"";
    system( & sciezka[ 0 ] );
    return 0;
}

W tym przypadku uruchamiany jest pierwszyprojekt z 1 parametrem programu wywołującego .
P-143156
Kaikso
» 2016-01-09 18:30:20
No to nie jest dobre rozwiązanie. Przy uruchamianiu przez polecenie otworzy się druga konsola, a w trybie tekstowym program nie zadziała. Jeśli chcesz uruchomić program w tle musisz stworzyć tak zwanego deamona za pomocą funkcji fork(). A do ewentualnej obsługi błędów wystarczy podmienić standardowy strumień błędów na docelowy plik z logami poprzez zamknięcie deskryptora pliku strumienia funkcją close() i zduplikowanie deskryptora pliku z logami funkcją dup().
To standardowa metoda stosowana w takich sytuacjach na Linuxach.
P-143193
Piastlis
Temat założony przez niniejszego użytkownika
» 2016-01-10 08:07:57
Możliwe.Jak na razie poświęciłem na C++ na Ubuntu kilka godzin.Przeniosłem na Linuks program umożliwiający jednoczesne ściąganie i oglądanie mediów w necie.Takie połączenie między wtyczką flasgot a vlc i dowolnym programem ściągającym.Normalnie tego programu nie widać na ekranie a terminal wykorzystuje do zmian ustawień i wyświetlania komunikatów.Może to nie jest eleganckie rozwiązanie ale jak na pierwszą pracę nie jest źle bo działa:) 
P-143253
« 1 »
  Strona 1 z 1