WTF? Coś nie tak z kompilacja (?)

0

Pracuję w Qt Creatorze no i właśnie skończyłem mały projekt, kompiluje go no i jak zwykle program się uruchamia, wszystko chodzi, ale kiedy uruchamiam program normalnie (nie z poziomu IDE) po skopiowaniu bibliotek, już nie które funkcje nie działają tak jak powinny... Pierwszy raz zdarzyło mi się takie coś i już nie wiem co jest nie tak... Jakieś pomysły?

1

Witam!

Napisałem pewien program robiący pewne rzeczy i korzystający z pewnych bibliotek.
W pewnych okolicznościach działa dobrze, a w niektórych nie.

Co może być nie tak?

Ja to tak rozumiem :D

0

Ja tego nie rozumiem szczerze mówiąc :D no ale tak jest... No nie mogę nic wykombinować, próbowałem w trybie release i debug i to samo...

0

Ok przykładowo: mam qlistview i button który usuwa zaznaczony wiersz, przy uruchamianiu przez IDE działa tzn wiersz się usuwa a przy normalnym uruchamianiu nie.
Drugie co zauważyłem to coś nie tak z łączeniem się z serwerem smtp(tak obstawiam) przy takich samych ustawieniach kiedy uruchamiam przez IDE emaile dochodzą(załączniki,polskie znaki, wszystko jak powinno) a z poziomu systemu już nie.. program wywala błąd informujący że serwer nie odpowiada... i o co tu chodzi?

0

Hm tak na początek:
1.Upewnij się,czy masz w opcjach linkera poustawiane prawidłowo liby.
2.Qt Creatorowi czasem odbija,aczkolwiek do tej pory spotykałem się jedynie z przypadkiem odmowy kompilacji kodu,który chwilę wcześniej śmigał.Weź kompletnie przeczyść projekt i skompiluj ponownie.

A,no i może będziesz miał użytek z takiego mojego czegoś:
http://4programmers.net/Forum/Off-Topic/Oceny_i_recenzje/185443-beta_wersja_loggera_do_obaczenia

0

Wczoraj usuwałem, budowałem kilka razy od nowa i nic nadal coś nie tak, nagrałem nawet film (źle przyciąłem okno) , dodałem sygnał i połączyłem do z slotem aby wyświetlał mi kroki sesji SMTP aby zlokalizować błąd i nadal nic nie wiem, nie pojmuje tego jak z poziomu IDE wszystko jest ok, a kiedy uruchamiam normalnie już coś się wali...

0

Interesujące...tak właśnie zachowywał się twój program u mnie,przy odpalaniu spod VisualStudio2003 + Qt AddOn.
W każdym razie,użyj zalinkowanej biblioteki loggera i dodaj sobie logi,przynajmniej będziemy wiedzieć co się tam w środku wyprawia.

0

Potrzebuje pomocy co do tego loggera, a więc krok po kroku co robię:

  1. Kopiuje dll do system32(żeby nie było wątpliwości)
  2. Dodaje *.h do projektu i includuje
  3. Dodaję bibliotekę zewnętrzną w Qt Creatorze, do projektu dochodzą linijki:

win32: LIBS += -L$$PWD/ -lLogger

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32: LIBS += -L$$PWD/ -lLogger_D

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

Wywołuje makro:
LOGINFO("KOMUNIKAT");

i co widzę: błąd:undefined reference to `_imp___ZN9BLBLogger8logPrintERK7QStringS2_iS2_ii'

0

-nie wrzucaj do system32,ale wsadź obie dllki tam,gdzie masz exeka
-hmmm nie dam głowy,ale dołączanie w pro winno chyba wyglądać tak: LIBS += Logger_D.lib (zakładając,że skopiowałeś *.lib-a tam,gdzie masz *.pro)

0

a plik .lib jest?

0

Wygląda na to,że ten kretyński Qt Creator nie załącza dobrze liba,albo coś wyjątkowo pokręciłeś przy ustawieniach projektu.
Hmmm...ja bym spróbował utworzyć nowy,ultra prosty projekt i tam dla testu dołączyć logera.Jak się uda,sprawdzić zawartość .pro tego projektu.

0

Nowy projekt:
pro:


#-------------------------------------------------
#
# Project created by QtCreator 2012-02-12T20:07:04
#
#-------------------------------------------------

QT       += core

QT       -= gui

TARGET = nienazwany
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

HEADERS += \
    logger_global.h



LIBS += Logger.lib \
    Logger_D.lib

liby w tym samym folderze co pro, i znowu błąd tym razem: błąd:Logger.lib: No such file or directory tak samo dla logger_d...

0

Dobra dam update, stworze nowy projekt dodam pliki i napisze co i jak, bo już nie mam siły na to ;/ ale dzięki za pomoc:)

0

Qt kompilowałeś sam czy instalowałeś z binarek? Aktualizowałeś czy jest to pierwsza wersja w systemie?

0

No nie wierze, dałem update Qt Creatora, zrobiłem nowy projekt, pododawałem pliki z starego projektu kompiluje, uruchamia się program wiadomości dochodzą! Ok fajnie, ale kopiuję dll tam gdzie exe, uruchamiam exe chce wysłać wiadomość no i nie idzie ;/

0

to pociągnij te dll'ki osobno z net'a i sprawdź czy na nich działa

0

Na dll z neta prawie do każdego brakuje jakiegoś dowiązania :(

0

Hmm, nie wiem gdzie jest błąd i nie wiem czemu tak jest, że spod IDE program działa a przy normalnym uruchamianiu nie i tak sobie myślę czy coś nie tak może być w tym fragmencie kodu

mySocket.waitForReadyRead();
myString = mySocket.readAll();
sig_wypisz("1string: " + myString); //czy odpowiada ?

myString zawiera pierwszą paczkę odebraną przez program z serwera smtp zaraz po uruchomieniu czyli np dla gmailu z poziomu IDE dostaje: 1string: 220 mx.google.com ESMTP o49sm53663561eei.0 a już z zwykłego exe'ka tylko 1string:

0

Dodam, że mySocket->errorString() zwraca dla exe'ka Network operation timed out, ktoś ma jakiś pomysł ?

0

Ok poradziłem sobie, okazało się, że brakowało 2 dll które QtCreator "dokładał" sam podczas uruchamiania programu w nim, a o które exe się nie pluł tak jak o inne dll. Szczególnie dziękuje @MasterBLB bez niego było by o wiele ciężej zlokalizować problem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1