2015-04-15 2 views
1

Я начинающий «программист», и я использую кавычки, потому что я ТАК зеленый.CodeBlocks Qt HelloWorld.exe перестает работать (C++)

Windows 7 64-разрядные
Code :: Blocks 13,12
OpenCV 2.4.10
Qt 4.8.5

Я был брошен в одиночку создать довольно большой (для меня) кусок программного обеспечения, которое использует OpenCV и mingw для отслеживания движения нескольких разных маркеров и вычисления (и точно догадки ...) многих вещей. Я почти закончил, но мне нужно включить в него некоторые элементы GUI, самое главное диалоговое окно, с помощью которого вы можете искать файлы (вчера появились). Поэтому я попытался настроить Qt с помощью Code :: Blocks и создать базовое приложение Hello World. Я настроил переменную env Path, я указал каталоги поиска компоновщика и компилятора, где они должны быть. Это все еще не работает.

#include <QApplication> 
#include <QFont> 
#include <QPushButton> 

int main(int argc, char* argv[]) 
{ 
QApplication app(argc, argv); 

QPushButton quit("Quit"); 

quit.resize(75, 30); 
quit.setFont(QFont("Times", 18, QFont::Bold)); 

QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit())); 

quit.show(); 

return app.exec(); 
} 

Это то, что я пытаюсь запустить. Компиляция отлично, никаких ошибок или предупреждений. Но когда я запускаю его, он сразу же перестает работать, так как в «Qt.exe перестает работать» и обрабатывает возвращает -1073741819 ... он падает, когда он пытается сделать что-то Qt-специфическое (QApplication ...)

Я добавил простой cout << "Hello world"; до QApplication app(argc, argv);, и он отобразился на консоли, а затем перестал работать.

Даже когда я родила код до
QApplication app(argc, argv); return app.exec();
он по-прежнему падает точно так же.

Мой первый вопрос ... что может быть проблемой? У меня кончились идеи, и Google тоже не хочет мне помогать. Я пробовал использовать Qt Creator, и он работал нормально, но я не мог заставить его работать ... он просто печатает «Naci» в консоли, независимо от того, какой проект я пытался запустить, и у меня есть не знаю, что такое «Начи» и откуда оно взялось.
PS: И еще один вопрос. Можно ли создать консольное приложение, которое в какой-то момент вызывает функцию, которая имеет окно QDialog и получает от нее имя файла?

Редактировать: Я пытаюсь запустить примеры, прилагаемые к выпуску Qt. Все они дают мне неочевидную ссылку на ошибки vtable, и ни одно из решений, которые я нашел во время работы. Jesus ... это не дружит с новыми людьми edit2: Я собираюсь перестроить и перенастроить Qt ... на моем нетбуке 1ghz, вероятно, это займет некоторое время ...

+0

Я никогда не видел, чтобы какие-либо «QWidgets» использовались (в вашем случае, кнопка), не имея их внутри 'QMainWindow'. Я не уверен, что это может сработать, но я бы предложил создать «QMainWindow» с кнопкой в ​​качестве дочернего элемента. Это также должно быть в примерах. – Bowdzone

+0

относительно создания окна QDialog Я думаю, что это возможно. Для Linux я могу использовать консольное приложение fork() для предоставления QDialog в качестве дочернего процесса.затем отправьте обратно имя файла в «консольное приложение» родительского процесса через 'pipe()', но для окон это возможно через 'CreatProcess()'. – Youssef

+0

Вы скопировали библиотеки Qt dll в папку сборки? Они необходимы для запуска любого приложения Qt. У вас есть QtCreator на польском языке. В консоли он печатает это приложение, и вам нужно нажать Return to close console. Из-за польской буквы «ś» консоль отбрасывает остальную часть текста «Naciśnij Return aby zamknąć» – firescreamer

ответ

0

Я переконфигурировал Qt, а затем перестроил он через MingW снова. Несмотря на то, что после 6 часов компиляции не удалось, этого было достаточно ... и теперь Qt работает с Code :: Blocks. Странный. Я сделал это раньше, не знаю, почему на этот раз это сработало, и в последний раз это не так.

Для тех, кто не знает, как это сделать, запустите командную строку (если в Windows), перейдите в основную папку Qt (с папками include, bin, lib (etc), в моем случае C : \ Qt \ 4.8.5), введите configure.exe (используйте доступные параметры configure.exe -help), и после того, как все будет сделано, просто нажмите mingw32-make и подождите часа или десять.

Смежные вопросы