[Çözüldü] qt başka bir program çalıştırma

Başlatan eacimen, 11 Haziran 2019 - 16:55:58

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

eacimen

merhaba

qt creator kullanarak yazdığım bir- birkaç programı yine qt creator widgets kullanarak nasıl çalıştırabilirim bilgisi olan var mı.

teşşekürler

Empat

3 gündür bilgisi veya bir fikri olan üye veya yetkili çıkmamış.

Maalesef ki, ben de bu konuda yeterli bilgi ve deneyime sahip değilim.

Bu yönlendirmeyi 3 gün ve daha fazla çözüm bulunamayan konularda yapıyorum.

Aşağıda belirttiğim gruplarda yeterince bilgili aktif üyeler mevcut.

Sorununuzu bu gruplarda çözerseniz, gelecek zamanda aynı sorunla karşılaşacak forum ziyaretçi ve üyeleri için, lütfen çözümünü burada paylaşın.

Bu ve şu Facebook grubuna katılıp, sorununuzu detaylarıyla anlatın.

Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!

eacimen

Alıntı yapılan: Empat - 14 Haziran 2019 - 03:59:03
3 gündür bilgisi veya bir fikri olan üye veya yetkili çıkmamış.

Maalesef ki, ben de bu konuda yeterli bilgi ve deneyime sahip değilim.

Bu yönlendirmeyi 3 gün ve daha fazla çözüm bulunamayan konularda yapıyorum.

Aşağıda belirttiğim gruplarda yeterince bilgili aktif üyeler mevcut.

Sorununuzu bu gruplarda çözerseniz, gelecek zamanda aynı sorunla karşılaşacak forum ziyaretçi ve üyeleri için, lütfen çözümünü burada paylaşın.

Bu ve şu Facebook grubuna katılıp, sorununuzu detaylarıyla anlatın.

Teşşekürler

Bir Çözüm bulabilirsem kesinlikle paylaşacağım.

Amenofis

Soruyu netleştirirsen çözeriz. Şu haliyle anlamsız.

Empat

Sorununuz çözüldüyse, forum düzeninin sürdürülebilirliğine katkı sağlamak için, konu başlığınızı [Çözüldü] olarak işaretlemenizi rica ediyoruz.

Başka bir sorunun yanıtını bulamazsanız ya da bir sorunla karşılaşırsanız, yeni bir konu açabilirsiniz.

İyi forumlar.
Everything for me is just Peace - Love - Coding. Also, as they say: I am a programmer, I have no life!

eacimen

Alıntı yapılan: Amenofis - 14 Haziran 2019 - 21:52:29
Soruyu netleştirirsen çözeriz. Şu haliyle anlamsız.

Merhaba

Sorun şu ki bir widgets uygulamasında butona basıldığında yine qtde hazırlanmış başka bir consol appi çalıştırmasını istiyorum. Umarım net olmuştur.

Sanırım ilk yapmam gereken consol appi deploy etmek fakat orada sorun yaşamaktayım. Consol app şuan executiable olmadığı için system() komutunu kullanarak consol appi çalıştıramıyorum. Deploy etmeden bu problemi çözmenin bir yolu var mı? Eğer yoksa nasıl deploy edebilirim.

Teşekkürler

Amenofis

"Consol app şuan executiable olmadığı için..."

Bir c++ kodu derlendiği zaman "executable" dosya oluşur. Yani konsol uygulamasının executable olmaması gibi birşey söz konusu olamaz.

Bu uygulamayı komut satırından elle çalıştırabiliyorsan system() fonksiyonu ile de çalır. Çalışmıyorsa, uygulama PATH değişkeninde listelenen dizinlerde değil başka yerde duruyor demektir. Öyleyse uygulamayı çalıştırmak için bulunduğu dizin ile birlikte yazmak gerekir. Örneğin;

system("/home/xx/a/b/uygulama");

eacimen

Alıntı yapılan: Amenofis - 20 Haziran 2019 - 17:06:28
"Consol app şuan executiable olmadığı için..."

Bir c++ kodu derlendiği zaman "executable" dosya oluşur. Yani konsol uygulamasının executable olmaması gibi * bir şey söz konusu olamaz.

Bu uygulamayı komut satırından elle çalıştırabiliyorsan system() fonksiyonu ile de çalır. Çalışmıyorsa, uygulama PATH değişkeninde listelenen dizinlerde değil başka yerde duruyor demektir. Öyleyse uygulamayı çalıştırmak için bulunduğu dizin ile birlikte yazmak gerekir. Örneğin;

system("/home/xx/a/b/uygulama");

Merhaba

Ben uygulamayı ellede çalışıramıyorum ne yazık ki sorun orada. Consol appi deploy etmekten kastım elle çalışır hale getimekti aslında ama sanırım kendimi ifade edemedim kusra bakmayın.

Amenofis

Masaüstü sistemde deploy diye bişey olmaz. Sen exe'nin yerini bulamıyorsun gibi geldi bana. Proje klasörünün bulunduğu dizinde build-proje_adı-Desktop-Release adında bir dizin oluşur. exe onun içinde. Orada komut satırı açıp çalıştırabilirsin ya da full path ile birlikte yazarak çalıştırabilirsin.

eacimen

[mention=647192]@Amenofis[/mention]

Merhaba

Bahsettiğin dizini biliyorum.

eren@eren-ABRA-A5-V15-2:~/QT-Creator/mediaGatway/build-mediagateway-Desktop-Release$ ls -F
main.o        mediagateway*       moc_mystream.cpp  mystream.o
mainwindow.o  moc_mainwindow.cpp  moc_mystream.o    ui_mainwindow.h


sanırım .exe diye bahsettiğiniz dosya mediagateway* fakat bu dosya çift tıkladıımda bu dosyayı çalıştırılabilecek uygun bir uygulama olmadığını söylüyor ve uygulama seçmemi istiyor. .exe diye bahsettiğiniz dosya bu değil mi?


Amenofis

Evet o. Fakat niye çalışmadığını anlamadım. Qt creator içinden çalıştırınca ne oluyor? "readelf -h mediagateway*" çıktısını görelim. Debug modda çalışıyor mu? Orada bir makefile olması lazımdı o nerde?

eacimen

[mention=647240]@Amenofis[/mention]

Qt Creatorda projeyi açıp run ettiğimde sorunsuz çalışıyor herhang bir hata almıyorum ve beklenen çıktıları veriyor program. Release değil Debug dizininde ki programıda çalıştıramıyorum orada da aynı sıkıntı var.

eren@eren-ABRA-A5-V15-2:~/QT-Creator/mediaGatway/build-mediagateway-Desktop-Release$ ls
main.o        mediagateway        moc_mystream.cpp  mystream.o
mainwindow.o  moc_mainwindow.cpp  moc_mystream.o    ui_mainwindow.h
Makefile      moc_mainwindow.o    moc_predefs.h


make file ls çıktısında görünüyor fakat ls -F çıktısında görünmüyor yani make file var aslında.
eren@eren-ABRA-A5-V15-2:~/QT-Creator/mediaGatway/build-mediagateway-Desktop-Release$ readelf -h mediagateway
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - GNU
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x36b0
  Start of program headers:          64 (bytes into file)
  Start of section headers:          48000 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         9
  Size of section headers:           64 (bytes)
  Number of section headers:         32
  Section header string table index: 31

readelf -h çıktısıda bu şekilde. Acaba bir paket eksik olabilir mi? Bu yüzden çalıştıramyor olabilir miyim?

İlgin için çok teşşekürler.

Amenofis

Paket eksik olsa qt creator içinde de çalışmaz. O dizindeki makefile hariç herşeyi silip "make" komutunu verip denermisin. Çalışmazsa make komutunun çıktısını da bakalım nasıl derliyor acaba.

eacimen

makefile ve mediagateway dışındaki erşeyi sildim ve eren@eren-ABRA-A5-V15-2:~/QT-Creator/mediaGatway/build-mediagateway-Desktop-Release$ make mediagateway
/usr/lib/qt5/bin/uic ../mediagateway/mainwindow.ui -o ui_mainwindow.h
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../mediagateway -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o main.o ../mediagateway/main.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../mediagateway -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o mainwindow.o ../mediagateway/mainwindow.cpp
../mediagateway/mainwindow.cpp: In member function 'void MainWindow::StartStream(QString)':
../mediagateway/mainwindow.cpp:31:11: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result]
     system(command_ch);
     ~~~~~~^~~~~~~~~~~~
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../mediagateway -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o mystream.o ../mediagateway/mystream.cpp
../mediagateway/mystream.cpp: In member function 'void myStream::Stream()':
../mediagateway/mystream.cpp:18:11: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result]
     system(command_ch);
     ~~~~~~^~~~~~~~~~~~
g++ -pipe -O2 -Wall -W -dM -E -o moc_predefs.h /usr/lib/x86_64-linux-gnu/qt5/mkspecs/features/data/dummy.cpp
/usr/lib/qt5/bin/moc -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include ./moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/eren/QT-Creator/mediaGatway/mediagateway -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../mediagateway/mainwindow.h -o moc_mainwindow.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../mediagateway -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o moc_mainwindow.o moc_mainwindow.cpp
/usr/lib/qt5/bin/moc -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB --include ./moc_predefs.h -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I/home/eren/QT-Creator/mediaGatway/mediagateway -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I/usr/include/c++/7 -I/usr/include/x86_64-linux-gnu/c++/7 -I/usr/include/c++/7/backward -I/usr/lib/gcc/x86_64-linux-gnu/7/include -I/usr/local/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed -I/usr/include/x86_64-linux-gnu -I/usr/include ../mediagateway/mystream.h -o moc_mystream.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../mediagateway -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtWidgets -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I. -isystem /usr/include/libdrm -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o moc_mystream.o moc_mystream.cpp
g++ -Wl,-O1 -o mediagateway main.o mainwindow.o mystream.o moc_mainwindow.o moc_mystream.o   -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread


çıktısı bu şekilde halla mediagatewaye çift tıkladığımda app seçtiriyor oradan hangi appi seçmeliyim bu normal mi

Amenofis

Normal şekilde derliyor onda sorun yok. Terminalde çalıştırsan da hatayı görsek. Bu şekilde belli olmuyor ki.

eacimen

Sanırım problem düzeldi muhtelemen derlerken bir sorun olmuştu make komutuyla düzelmiş olabilir terminalden programı çalıştırabiliyorum fakat terminal ekranı dışından çift tıklayarak çalıştıramıyorum hangi uygulamayı seçmem gerekiyor çalıtırabilmek için biliyor musunuz?

Bu arada da ana problemin çözümü de Qt Creator ile başka bir programı çalıştırmak için kullanmanız gereken code
system("'/home/kullanıcı_ad/QT_Workspace/build-app-Desktop-Release/app'")

[mention=647277]@Amenofis[/mention] İlgin için çok teşşekür ederim oldukça yardımcı oldun.

Amenofis

Şöyle bir düzeltme yapmak gerekiyor. Ne sorunun ne de çözümün Qt ile bir alakası yok. system() fonksiyonu standart C fonksiyonudur. Derlediğin programın çalışmaması da yine Qt ile değil sistemle alakalı olsa gerek. Mesela çalıştırılabilir dosyanın "executable biti" set edilmemiş olabilir mi acaba? 

ls -l mediagateway
-rwxr-xr-x ...

Bu şekilde olması gerekiyor. x harfi "çalıştırılabilir dosya" anlamına gelir. Eğer x yok ise;
chmod +x mediagateway

eacimen

çalıştırılabilir dosya olarak görünüyor ama hala çalışmıyor fakat en azından artık terminalden çalıştırabiliyorum. bu bile yeterli. ilgin için teşşekür ederim tekrar