Russian Qt Forum
Ноябрь 01, 2024, 22:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Повторение примера  (Прочитано 5941 раз)
ireus
Гость
« : Январь 05, 2010, 21:50 »

Попробовал повторить в Creator'e 4.60 пример Dendy с зависимостями (http://www.prog.org.ru/topic_11935_15.html). После компиляции получил:

D:/Programming/qt/Projects/Myhello/main.cpp:4: error: 'printSomething' was not declared in this scope.

Но почему? Ведь в файле broken.h эта функция продекларирована:

#include <stdio.h>
 inline void printSomething()
{
    printf( "Hello!\n" );
}

Что не так?
Записан
niXman
Гость
« Ответ #1 : Январь 05, 2010, 21:57 »

я хидер подключить не забыл?
Записан
ireus
Гость
« Ответ #2 : Январь 05, 2010, 21:59 »

Возможно, только не соображу, как это сделать...
Записан
ireus
Гость
« Ответ #3 : Январь 05, 2010, 22:02 »

Ежели в про файле. то там порядок.
TARGET = Myhello
CONFIG += console
HEADERS += broken.h
SOURCES += main.cpp

Записан
niXman
Гость
« Ответ #4 : Январь 05, 2010, 22:07 »

в main.cpp добавь строку #include <broken.h>
Записан
ireus
Гость
« Ответ #5 : Январь 05, 2010, 22:10 »

Ну что тут скажешь! Согласитесь, что без идиотов мир был беднее. Миллион благодарностей!!!
Записан
ireus
Гость
« Ответ #6 : Январь 05, 2010, 22:21 »

Чуток поспешил:
D:/Programming/qt/Projects/Myhello/main.cpp:1: error: broken.h: No such file or directory
И как следствие:
D:/Programming/qt/Projects/Myhello/main.cpp:4: error: 'printSomething' was not declared in this scope

Записан
ireus
Гость
« Ответ #7 : Январь 05, 2010, 22:28 »

Так в натуре:

main.cpp
#include <broken.h>
int main( int argc, char ** argv )
{
    printSomething();
    return 0;
}

broken.h
#include <stdio.h>
 inline void printSomething()
{
    printf( "Hello!\n" );
}

Myhello.pro
TARGET = Myhello
CONFIG += console
HEADERS += broken.h
SOURCES += main.cpp
Записан
ireus
Гость
« Ответ #8 : Январь 05, 2010, 22:30 »

Кажется, понял ошибку. Надо заменить Myhello на broken и будет счастье.

Всем спасибо.
Записан
Dendy
Гость
« Ответ #9 : Январь 05, 2010, 22:31 »

Используйте двойные кавычки вместо треугольных: #include "broken.h".
Записан
ireus
Гость
« Ответ #10 : Январь 05, 2010, 23:08 »

Спасибо, Dendy, Поражаюсь только, как на ровном месте сумел так накосячить Смеющийся

И ещё вопрос. Чтобы увидеть надпись, я должен организовать бесконечный цикл? Не подскажете как это лучше сделать?
Записан
Dendy
Гость
« Ответ #11 : Январь 05, 2010, 23:22 »

printf() пишет в stdout, чтобы увидеть результат программу нужно запускать не из эксплорера, а набрав руками в консоли: broken.exe
Записан
ireus
Гость
« Ответ #12 : Январь 05, 2010, 23:24 »

Благодарю, Dendy! Очень признателен.
Записан
ireus
Гость
« Ответ #13 : Январь 06, 2010, 10:37 »

Код broken.h (переименованный в broken.exe) напрямую в консоле не работает (делал через тотал командер). Попробовал внести изменения:

#include <stdio.h>
 
int main( int argc, char ** argv )
{
    printf( "Hello!\n" );
    return 0;
}

То же самое, виснет. Убрал аргументы в int main () - без изменен6ий. Может быть printf не работает в ДОС или всё же надо через cmd запускаться, а не через TC?
Записан
Dendy
Гость
« Ответ #14 : Январь 06, 2010, 11:04 »

С трудом понимаю чего вы хотите добиться. Рекомендую начать с бумажной книжки по C/C++.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.076 секунд. Запросов: 21.