| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT4] Ошибка |
| Автор: ISerg1986 12.1.2014, 11:34 | ||||||
| Пишу на QT В коде программы использую define первые строки программы
можно и так
В любом случае, возникает Ошибка -- expected',' or '...' before numeric constant. QT жалуется на первые строки. Вот так
ошибки не будет Скажите, в чём тут ошибка? Почему QT не нравятся VID PID, ведь если они заданы некорректно, ошибка должна быть на строке int init(unsigned int VID, unsigned int PID), но не в начале. |
| Автор: ISerg1986 12.1.2014, 12:58 | ||||||||
Да. Я знаю и согласен. Но в строке
Нет ошибки. Нет синтаксической, нет логической. Всё чинно, благородно ) Ошибка должна быть тут
Но Qt указывает на первые строки. Обманывает (
Ну и я поворчу ))) 1)Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx]. Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2]. Везде QT большими буквами. 2) Показывает ошибку не на той строке. Вводит в заблуждение. 3) В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку - это есть. Если вопрос актуален только для некоторой версии библиотеки - для всех версий Qt Проставьте несколько ключевых слов темы - сделано. В вопросе укажите полную версию версию библиотеки - нет, но и не требуется. Не забывайте пользоваться кнопкой "Код". -это есть. Вроде всё есть, фреймворк указан, код есть, полный текст ошибки есть, всё есть. Твёрдая четвёрка. |
| Автор: kuzulis 13.1.2014, 09:59 | ||
Не Qt, а компилятор. И ничего не обманывает. |
| Автор: borisbn 13.1.2014, 10:13 |
Как набор h-ников, lib-ин и dll-ек (Qt) может указывать на ошибки в твоём коде ? и там неправильно |
| Автор: bsa 13.1.2014, 10:26 | ||||||
Тебе уже объяснили, что препроцессор (это такая "утилитка", которая вызывается компилятором перед компиляцией файла, она обрабатывает инструкции начинающиеся с решетки) сильно по барабану, что и чем заменять. Он тупо заменяет в тексте все слова VID и PID на указанные тобой значения. Поэтому, когда компилятор доходит до строки "int init(unsigned int VID, unsigned int PID)", то он видите ее уже не так, а "int init(unsigned int 0xC251, unsigned int 0x1701)". Чтобы проблем не было все опытные программисты имеют определенные правила именования макросов, переменных, констант и функций. Так вот, в стиле Qt все макросы (#define) должны состоять только из заглавных букв, цифр и знаков подчеркивания. Все остальные элементы пишутся маленькими буквами. Если имя состоит из нескольких слов, то каждое слово начинается с заглавной буквы. Типы и значения перечислений должны начинаться с заглавной буквы, а переменные, константы и функции должны начинаться с маленькой. Например:
|
| Автор: vinter 13.1.2014, 10:46 | ||
Насколько я знаю, это вообще общий совет. Присущий не только стилю Qt, но вообще стилям в целом. Это хорошая практика. |
| Автор: ISerg1986 13.1.2014, 21:25 | ||
Теперь такая ошибка-" undefined reference to libusb_init@4" Тут проблема в libusb.h или настройках компилятора? |
| Автор: borisbn 14.1.2014, 09:29 | ||||
Ни то, ни то. Судя по ошибке "undefined reference" компилятор уже закончил работу, а ошибку выдал линковщик, который не видит библиотеки libusb. Для того, чтобы он увидел добавь в .pro файл следующее
Если тебе не нужна кроссплатформенность, и нужен только linux, то можешь добавить просто
|
| Автор: bsa 14.1.2014, 10:28 | ||
|
| Автор: ISerg1986 14.1.2014, 10:54 | ||||
Тоже была такая идея. Но я добавлял LIBS += -L/usr/local/lib Мало опыта и знаний.
Ок. Я просто решил задать тут, чтобы не засорять форум моими глупыми вопросами. ) |