Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: [QT4] QextserialPort  (Прочитано 3756 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
[QT4] QextserialPort
« : 03 Декабря 2009, 19:55:39 »
собсно как бодключить либу?
0) скачал -> http://sourceforge.net/project/showfiles.php?group_id=127181
1) скомпилил. в папке build лежат:
http://ЗАПРЕЩЁННЫЙ РЕСУРС/view/f82c8ead0792f599c6be6ac24106593a
и куда их кинуть?
QT ставил через центр приложений.

Оффлайн coyote

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #1 : 08 Декабря 2009, 10:21:10 »
обычно либа собирается, потом устанавливается ./configure && make && make install
make install - копирует куда-нибудь в /usr/lib - .so  файлы и в /usr/include/ - .h файлы

самосборное лучше устанавливать в /usr/local/...

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #2 : 08 Декабря 2009, 20:34:20 »
неа, не катит, их пример использования ентой компоненты не компилится :idiot2:

Оффлайн coyote

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #3 : 09 Декабря 2009, 07:57:35 »
ошибки какие?

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #4 : 09 Декабря 2009, 20:57:38 »
/home/grem/project/qextserialport/examples/qespta/MessageWindow.cpp:87: error: ‘stderr’ was not declared in this scope
/home/grem/project/qextserialport/examples/qespta/MessageWindow.cpp:87: error: ‘printf’ was not declared in this scope
на ХРени всё компилилось нормально

Оффлайн coyote

  • Любитель
  • *
  • Сообщений: 59
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #5 : 09 Декабря 2009, 23:40:38 »
добавь #include <stdio.h> в ..../qespta/MessageWindow.cpp

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #6 : 10 Декабря 2009, 00:45:38 »
и теперь
/home/grem/project/qextserialport/examples/qespta/MessageWindow.cpp:88: error: cannot convert ‘_IO_FILE*’ to ‘const char*’ for argument ‘1’ to ‘int printf(const char*, ...)’на строку
printf(stderr, MessageWindow::QtMsgToQString(type, msg).toAscii());

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #7 : 10 Декабря 2009, 00:56:26 »
Вообще странная реализация printf используется. Может в венде такая, перегруженная по-всякому. А здесь нужно fprintf, если использовать файловые дескрипторы.

Пользователь решил продолжить мысль 09 Декабря 2009, 21:03:07:
Вообще, в стандартной библиотеке C++ функции printf нет. Здесь используется прежиток из стандартной библиотеки C, в котором(в языке) перегрузки не было никогда. Так что перегруженная printf(FILE*, const char*, ...) это выдумки дяди билли.

Пользователь решил продолжить мысль 09 Декабря 2009, 23:09:38:
Да, и для C++ нужно #include <cstdio> а не #include <stdio.h>

Пользователь решил продолжить мысль 10 Декабря 2009, 01:21:14:
Посмотрел оригинал. Там как раз в 88 строке fprintf используется. Признавайся, куда приставку 'f' потерял?
« Последнее редактирование: 10 Декабря 2009, 01:21:14 от Mam(O)n »

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #8 : 10 Декабря 2009, 14:28:42 »
Признавайся, куда приставку 'f' потерял?
кроме как инклюд добавил, больше ничего не трогал, ибо с++ дальше "hello, world" не знаю ;)
а у вас компилится пример?


Пользователь решил продолжить мысль 10 Декабря 2009, 14:38:24:
ужс :2funny:
http://ЗАПРЕЩЁННЫЙ РЕСУРС/ru/view/9d885cb3522d7294ab9d0dc3f65d0fa5/original/
« Последнее редактирование: 10 Декабря 2009, 14:38:24 от Grem »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #9 : 10 Декабря 2009, 14:56:20 »
а у вас компилится пример?
Да, после добавления #include <cstdio>

Пользователь решил продолжить мысль 10 Декабря 2009, 15:30:42:
ужс :2funny:
Похоже, ты сам не замечаешь, как правишь. Теперь регистр в #include "QuespTest.h" потерял.

А вообще сама либа довольно кривая. Без напильника не собралась, т.к. использовала в некоторых местах вендовые инклюды и в одном месте ошибку.
« Последнее редактирование: 10 Декабря 2009, 15:30:42 от Mam(O)n »

Оффлайн Grem

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #10 : 10 Декабря 2009, 17:37:52 »
не знаю, у меня либа собралась нормально, но я брал 1.1, ибо от слов "альфа" и "вин" в сочитании, меня аж коробит :)
теперь -> http://ЗАПРЕЩЁННЫЙ РЕСУРС/ru/view/578a017b14ca06856a257739cbafa183/original/
а вообще, какой ещё компонентой можно пользоваться в PyQT для общения с устройствами, подключенными к ком порту?

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #11 : 10 Декабря 2009, 17:58:00 »
Пнятно. Я 1.2 брал. Сейчас взял 1.1 - собралась без проблем. Пример пришлось пилить только в плане добавления #include <cstdio> в MessageWindow.cpp и правки #include "QuespTest.h" в QuespTest.cpp. Правда собирал из консоли, креатор не юзал.

Пользователь решил продолжить мысль 10 Декабря 2009, 17:24:09:
Поставил креатор. Тоже собралось без проблем, с вышесказанными изменениями. Единственное, что, я отказался от импорта настроек, который мне предложил креатор. Он вендовый Makefile похоже подхватил, который чудным образом затесался в релизе.

Пользователь решил продолжить мысль 10 Декабря 2009, 19:38:56:
Кстати, в версии 1.1 в оригинальном примере MessageWindow.cpp в строке 88 всё же fprintf а не printf. Так что верни приставку 'f' на место ;)
« Последнее редактирование: 10 Декабря 2009, 19:38:56 от Mam(O)n »

Оффлайн suslikk

  • Старожил
  • *
  • Сообщений: 2488
    • Просмотр профиля
Re: [QT4] QextserialPort
« Ответ #12 : 25 Декабря 2009, 10:44:21 »
1. Заходим в папку qextserialport
2. qmake --unix
3. qmake qextserialport.pro
4. make
5. заходим в папку buld и копируем содержимое в /usr/lib/ или /usr/local/lib
6. в консоле запускаем sudo ldconfig
7. не забываем в своем проекте прописать LIBS += -lqextserialport
Нарисуй свой город на openstreetmap.org

 

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