![]() |
|
![]() ![]() ![]() |
|
ISerg1986 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Пишу на QT
В коде программы использую define первые строки программы
можно и так
В любом случае, возникает Ошибка -- expected',' or '...' before numeric constant. QT жалуется на первые строки. Вот так
ошибки не будет Скажите, в чём тут ошибка? Почему QT не нравятся VID PID, ведь если они заданы некорректно, ошибка должна быть на строке int init(unsigned int VID, unsigned int PID), но не в начале. |
||||||
|
|||||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
define - это просто замена одного другим (как будто ты это делаешь в текстовом редакторе - чаще всего Ctrl+H).
Вот это:
превращается в это
а так писать нельзя. В параметрах функции должны быть не константы, а названия переменных. Сделай так:
Добавлено через 2 минуты и 15 секунд А теперь поворчу))) 1) QT - это QuickTime. Я думаю, ты имел в виду Qt. 2) Причём тут Qt - так и не понял 3) По названию темы должно быть понятно, что в ней. В общем, за оформление - двойка )) -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
ISerg1986 |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Да. Я знаю и согласен. Но в строке
Нет ошибки. Нет синтаксической, нет логической. Всё чинно, благородно ) Ошибка должна быть тут
Но Qt указывает на первые строки. Обманывает (
Ну и я поворчу ))) 1)Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx]. Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2]. Везде QT большими буквами. 2) Показывает ошибку не на той строке. Вводит в заблуждение. 3) В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку - это есть. Если вопрос актуален только для некоторой версии библиотеки - для всех версий Qt Проставьте несколько ключевых слов темы - сделано. В вопросе укажите полную версию версию библиотеки - нет, но и не требуется. Не забывайте пользоваться кнопкой "Код". -это есть. Вроде всё есть, фреймворк указан, код есть, полный текст ошибки есть, всё есть. Твёрдая четвёрка. ![]() Это сообщение отредактировал(а) ISerg1986 - 12.1.2014, 12:59 |
||||||||
|
|||||||||
kuzulis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 5.9.2007 Репутация: нет Всего: 1 |
Не Qt, а компилятор. И ничего не обманывает. |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Как набор h-ников, lib-ин и dll-ек (Qt) может указывать на ошибки в твоём коде ? и там неправильно -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
bsa |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Тебе уже объяснили, что препроцессор (это такая "утилитка", которая вызывается компилятором перед компиляцией файла, она обрабатывает инструкции начинающиеся с решетки) сильно по барабану, что и чем заменять. Он тупо заменяет в тексте все слова VID и PID на указанные тобой значения. Поэтому, когда компилятор доходит до строки "int init(unsigned int VID, unsigned int PID)", то он видите ее уже не так, а "int init(unsigned int 0xC251, unsigned int 0x1701)". Чтобы проблем не было все опытные программисты имеют определенные правила именования макросов, переменных, констант и функций. Так вот, в стиле Qt все макросы (#define) должны состоять только из заглавных букв, цифр и знаков подчеркивания. Все остальные элементы пишутся маленькими буквами. Если имя состоит из нескольких слов, то каждое слово начинается с заглавной буквы. Типы и значения перечислений должны начинаться с заглавной буквы, а переменные, константы и функции должны начинаться с маленькой. Например:
|
||||||
|
|||||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 3 Всего: 56 |
||||
|
||||
ISerg1986 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Теперь такая ошибка-" undefined reference to libusb_init@4" Тут проблема в libusb.h или настройках компилятора? |
|||
|
||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Ни то, ни то. Судя по ошибке "undefined reference" компилятор уже закончил работу, а ошибку выдал линковщик, который не видит библиотеки libusb. Для того, чтобы он увидел добавь в .pro файл следующее
Если тебе не нужна кроссплатформенность, и нужен только linux, то можешь добавить просто
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
|
|||
|
||||
ISerg1986 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 12.1.2014 Репутация: нет Всего: нет |
Тоже была такая идея. Но я добавлял LIBS += -L/usr/local/lib Мало опыта и знаний.
Ок. Я просто решил задать тут, чтобы не засорять форум моими глупыми вопросами. ) |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |