Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2011, 14:08   #1
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию ld returned 1 exit status

При сборке проекта выдает ошибку
Код:
:: error: collect2: ld returned 1 exit status
В гугле говорят ,что либо программа уже запущена (проверял - это не так) и в .pro файле много / (убрал тоже не помогает)
проект я приложил .
Вложения
Тип файла: rar Game.rar (22.0 Кб, 25 просмотров)

Последний раз редактировалось Hemul; 06.04.2011 в 14:25.
Hemul вне форума Ответить с цитированием
Старый 06.04.2011, 16:15   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от Hemul Посмотреть сообщение
При сборке проекта выдает ошибку
Код:
:: error: collect2: ld returned 1 exit status
В гугле говорят ,что либо программа уже запущена (проверял - это не так) и в .pro файле много / (убрал тоже не помогает)
проект я приложил .
Код:
#ifndef GAME_H
#define GAME_H

#include <QtGui>
#include <QWidget>
//#include "menu.h" ?

class QPushButton;
class QPixmap;
class QLabel;
class MENU;


class GAME:public QWidget {
	Q_OBJECT
private:
	short int matrix [3][3];//������� ��� �������� ���� � ��������� ����
        int counter;
	bool go;//true - ����� X ,false ����� 0
	bool AI;//���������� �� ������ AI
	int mode;//singe or multi player
	QPushButton *cmd[9];
	QPixmap     *zero,*cross;
	QPixmap     *lineH,*lineV;
	QPixmap     *stat1,*stat2; ...
Я может не читал новых книг Шлее и Бланшет но, что это? (
Код:
class QPushButton
). Подозреваю, что этого не нужно.
Код:
class MENU;
Вот это, как я понял - объявляет новый класс, но никак не использует его из "menu.h" - так как Вы его в "include" - не подключаете.

У Вас какой основной класс? В нём и должны быть все объявления.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 06.04.2011 в 16:18.
xwicked вне форума Ответить с цитированием
Старый 06.04.2011, 20:17   #3
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Код:
debug/game.o:C:\Users\Dayman\Desktop\Game-build-desktop/../Game/game.cpp:145: undefined reference to `updat(MENU*, GAME*, QApplication*)'
Дальше, думаю, сами разберетесь.

Внизу QtCreator есть вкладка "Application Output" (3 слева по-умолчанию). После неудачной сборки заглядывать стоит именно туда.
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 06.04.2011, 20:38   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от Dayman Посмотреть сообщение
Код:
debug/game.o:C:\Users\Dayman\Desktop\Game-build-desktop/../Game/game.cpp:145: undefined reference to `updat(MENU*, GAME*, QApplication*)'
Дальше, думаю, сами разберетесь.

Внизу QtCreator есть вкладка "Application Output" (3 слева по-умолчанию). После неудачной сборки заглядывать стоит именно туда.
Я попытался эту ошибку исправить - но у него она(программа) написана очень сложным способом. Для такой простой игры следует использовать дизайнер - код может втрое сократиться. Производительность, при этом, ничуть не пострадает. ИМХО.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 06.04.2011, 20:58   #5
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Цитата:
Сообщение от xwicked Посмотреть сообщение
Я попытался эту ошибку исправить - но у него она(программа) написана очень сложным способом. Для такой простой игры следует использовать дизайнер - код может втрое сократиться. Производительность, при этом, ничуть не пострадает. ИМХО.
Ну исправить это можно только одним способом - закомментировать вызов, ибо что должна делать эта функция я не знаю.

http://i19.fastpic.ru/big/2011/0406/...6a713c74e4.png

Без этой функции работает вроде.
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 06.04.2011, 21:08   #6
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от Dayman Посмотреть сообщение
Ну исправить это можно только одним способом - закомментировать вызов, ибо что должна делать эта функция я не знаю.

http://i19.fastpic.ru/big/2011/0406/...6a713c74e4.png

Без этой функции работает вроде.
Я комментировал - но потом попробовал понять, что у него эта функция должна была делать. Начал анализировать весь код - и моё удивление в первом посте(Построчно начал код разбирать).
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 06.04.2011, 21:14   #7
Dayman
Форумчанин
 
Аватар для Dayman
 
Регистрация: 12.01.2011
Сообщений: 186
По умолчанию

Видел такое в некоторых книжках/статьях по Qt. Forward class declaration или типа того.

Тонна примеров:
http://docs.scribus.net/index.php?la...urce&subpage=1
Lingua c++ non penis caninus est.
Dayman вне форума Ответить с цитированием
Старый 06.04.2011, 22:22   #8
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от Dayman Посмотреть сообщение
Видел такое в некоторых книжках/статьях по Qt. Forward class declaration или типа того.

Тонна примеров:
http://docs.scribus.net/index.php?la...urce&subpage=1
Код:
00007 #ifndef CMYKFARBEN_H
00008 #define CMYKFARBEN_H
00009 
00010 #include <QDialog>
00011 class QHBoxLayout;
00012 class QVBoxLayout;
00013 class QGridLayout;
00014 class QLabel;
Здесь объявляются классы, тех компонетов, которых нет в QDialog.
А здесь:
Код:
#ifndef GAME_H
#define GAME_H

#include <QtGui>
#include <QWidget>
//#include "menu.h" ?

//class QPushButton;
//class QPixmap;
//class QLabel;
class MENU;
QPushButton, QPixmap, QLabel уже объявлены в QtGui - закомментировал - всё запустилось. А MENU там должно остаться.
[Добавлено:] game.h:
Код:
        friend void updat(MENU *menu,GAME *game,QApplication *app);
game.cpp:
Код:
updat(menuReflesh,this,appReflesh);
А:
Код:
friend void GAME::updat(MENU *menu,GAME *game,QApplication *app)
- самой функции то нет.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 06.04.2011 в 22:38.
xwicked вне форума Ответить с цитированием
Старый 06.04.2011, 22:37   #9
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Алсо, для forward daclarations можно использовать QT_FORWARD_DECLARE_CLASS (но совсем не обязательно).
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 07.04.2011, 11:31   #10
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

dayman прав ,дело действительно в функции updat( она должна возвращать к главному меню ) ,странно компилятор ошибку выдал,например MSVS сказал бы ,что функция не обнаружена
Hemul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск