Название: Повторение примера Отправлено: 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" ); } Что не так? Название: Re: Повторение примера Отправлено: niXman от Январь 05, 2010, 21:57 я хидер подключить не забыл?
Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 21:59 Возможно, только не соображу, как это сделать...
Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 22:02 Ежели в про файле. то там порядок.
TARGET = Myhello CONFIG += console HEADERS += broken.h SOURCES += main.cpp Название: Re: Повторение примера Отправлено: niXman от Январь 05, 2010, 22:07 в main.cpp добавь строку #include <broken.h>
Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 22:10 Ну что тут скажешь! Согласитесь, что без идиотов мир был беднее. Миллион благодарностей!!!
Название: Re: Повторение примера Отправлено: ireus от Январь 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 Название: Re: Повторение примера Отправлено: ireus от Январь 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 Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 22:30 Кажется, понял ошибку. Надо заменить Myhello на broken и будет счастье.
Всем спасибо. Название: Re: Повторение примера Отправлено: Dendy от Январь 05, 2010, 22:31 Используйте двойные кавычки вместо треугольных: #include "broken.h".
Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 23:08 Спасибо, Dendy, Поражаюсь только, как на ровном месте сумел так накосячить ;D
И ещё вопрос. Чтобы увидеть надпись, я должен организовать бесконечный цикл? Не подскажете как это лучше сделать? Название: Re: Повторение примера Отправлено: Dendy от Январь 05, 2010, 23:22 printf() пишет в stdout, чтобы увидеть результат программу нужно запускать не из эксплорера, а набрав руками в консоли: broken.exe
Название: Re: Повторение примера Отправлено: ireus от Январь 05, 2010, 23:24 Благодарю, Dendy! Очень признателен.
Название: Re: Повторение примера Отправлено: ireus от Январь 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? Название: Re: Повторение примера Отправлено: Dendy от Январь 06, 2010, 11:04 С трудом понимаю чего вы хотите добиться. Рекомендую начать с бумажной книжки по C/C++.
Название: Re: Повторение примера Отправлено: ireus от Январь 06, 2010, 12:10 Согласен. Получается что-то сумбурное. Вообще-то я инженер-электронщик, приходилось программировать промышленные контроллеры (Beckhoff, Siemens и т.п.). Сейчас работаю в области пьезотехники, скоро появятся задачи программирования интерфейсов для встроенных контроллеров (операционка может быть любой). Qt заинтересовала своей кросс-платформенностью, работой с встроенными ОС. Вообще задача будущего - построение эмулятора встроенного в пользовательскую систему контроллера. Сейчас пытаюсь разобраться с Криэйтером применительно к работе с консолью, но, как Вы правильно заметили, подводят пробелы с Си++.
Скажите, пожалуйста. имеет ли смысл работа в криэйторе с языком Си? (не С++). Или лучше обойтись, например, Vim'ом и не морочить себе и другим голову? Название: Re: Повторение примера Отправлено: ireus от Январь 06, 2010, 12:19 Всё-таки получил своё Hello!. Через ТС вышел в DOS, запустил .exeЮ который скомпилировал ранее в Qt. Благодарю за терпение.
Название: Re: Повторение примера Отправлено: Dendy от Январь 06, 2010, 12:27 Я бы на вашем месте пробовал собирать программки в консоли, без IDE. Возьмите хорошую книжку, внимательно читайте и пробуйте. Как в школе.
|