Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Проблема с qextserialport-1.2 для Windows

Автор: semen_992 30.8.2009, 16:20

Здравствуйте!

Есть проблема с бибилиотекой QextSerialPort 1.2.

Подключил по инструкции -
"Вы в профайле вашего проекта добавили строку

Код:
unix:DEFINES = _TTY_POSIX_

ЗЫ: Проблем никогда не наблюдал. Делал так:

1) В профайле своего проекта определял макрос _TTY_POSIX_ (или _TTY_WIN_ для венды)

Код:

unix:DEFINES   = _TTY_POSIX_
win32:DEFINES  = _TTY_WIN_


2) В профайле своего проекта добавлял либу QextSerialPort

LIBS += -lqextserialport

3) В проекте юзаю следующим образом

Код:
#include <qextserialport.h>

.....
QextSerialPort *port = new QextSerialPort("/dev/ttyS0");
port->setBaudRate(BAUD19200);  
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);    
port->setDataBits(DATA_8);  
port->setStopBits(STOP_2);    
.....
"


Но при компиляции возвращается ощибка: "collect2: ld returned 1 exit status"
Пробовал примеры которые шли вместе с библиотекой - тоже самое.

Может кто уже встречался с этим?

Автор: ЙаМайскЫйПчОЛ 30.8.2009, 18:05

Давай уточним в заголовке написано ЭПроблема с qextserialport-1.2 для Windows, Ощибка"
далее Код:
unix:DEFINES = _TTY_POSIX_
+
QextSerialPort *port = new QextSerialPort("/dev/ttyS0");
что говорит о том что проект всетаки для никсов???
ты меня запутал...
просто чтоб мне проверить как это будет у меня я должен определиться с платформой
жду...
ну а ошибка то стандартная - линкер не нашел либу... ты лучше выложи весь код... так быстрее будет... в том числе файл проекта

Автор: ЙаМайскЫйПчОЛ 30.8.2009, 18:38

в режиме дебага собирается, в релизе "collect2: ld returned 1 exit status"
сужаем проблемму...
вывод : сделай сборку либы с опцией только релиз и будет тебе счастье...
предварительно посмотри текст файла проекта либы - там прямо написано

CONFIG(debug, debug|release) {
    TARGET = qextserialportd
} else {
    TARGET = qextserialport
}

и незабудь держать dll'ку поближе к экзэшнику - или там системные переменные порисовать.. вопщем я просто бросил дллку в папку с бинарником экзампла

Автор: semen_992 31.8.2009, 8:05

В про файле добавил строки:
"
LIBS += -lqextserialport

win32:DEFINES = _TTY_WIN_
"

и сам код:

CODE
#include <QtGui/QApplication>
#include "dialog.h"
#include <qextserialport.h>



int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();

QextSerialPort *port = new QextSerialPort("COM1");
port->setBaudRate(BAUD19200);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_2);
return a.exec();
}



Использую Qt Creator 1.2.1

Автор: ЙаМайскЫйПчОЛ 31.8.2009, 8:24

просто собири либу как release и все

Автор: ComPort 20.12.2010, 13:12

Цитата(ЙаМайскЫйПчОЛ @ 31.8.2009, 8:24) *
просто собири либу как release и все

Распаковал архив qextserialport-1.1 и в проекте подключил заголовочный файл

#include "D:\qextserialport-1.1\qextserialport\qextserialport.h"

Но при сборке ругается QextSerialPort *port = new QextSerialPort("COM1");
пишет Undefined reference to QextSerialPort::QextSerialPort(QString const&)

Че это такое?

Автор: Litkevich Yuriy 20.12.2010, 18:02

Цитата(ComPort @ 20.12.2010, 15:12) *
Распаковал архив qextserialport-1.1 и в проекте подключил заголовочный файл
от одного заголовочного файла толку мало.

Прочитай внимательно сообщение, которое ты цитировал.

Автор: ComPort 21.12.2010, 8:42

Цитата(Litkevich Yuriy @ 20.12.2010, 18:02) *
Цитата(ComPort @ 20.12.2010, 15:12) *
Распаковал архив qextserialport-1.1 и в проекте подключил заголовочный файл
от одного заголовочного файла толку мало.

Прочитай внимательно сообщение, которое ты цитировал.

Как релиз у меня мой проект не компилится, те же ошибки, а dll'ка собралась.
Вот файл pro, где я прописываю dll, что лежит в папке проекта
#-------------------------------------------------
#
# Project created by QtCreator 2010-12-20T09:03:40
#
#-------------------------------------------------

QT       += core gui

TARGET = comport
TEMPLATE = app
SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

win32:INCLUDEPATH +=C:\Qt\2010.05\qt\comport\
win32:LIBS += qextserialport.dll
win32:DEFINES = _TTY_WIN_

FORMS    += mainwindow.ui

Автор: Litkevich Yuriy 25.12.2010, 19:06

Цитата(ComPort @ 21.12.2010, 10:42) *
win32:LIBS += qextserialport.dll
а путь к этой dll-ке не указан, кури QMAKE_LIBDIR

Цитата(ComPort @ 21.12.2010, 10:42) *
win32:INCLUDEPATH +=C:\Qt\2010.05\qt\comport\
А точно в этом каталоге лежат заголовочники?

Автор: Гость_ComPort_* 28.12.2010, 10:58

Цитата(Litkevich Yuriy @ 25.12.2010, 19:06) *
Цитата(ComPort @ 21.12.2010, 10:42) *
win32:LIBS += qextserialport.dll
а путь к этой dll-ке не указан, кури QMAKE_LIBDIR

Цитата(ComPort @ 21.12.2010, 10:42) *
win32:INCLUDEPATH +=C:\Qt\2010.05\qt\comport\
А точно в этом каталоге лежат заголовочники?


Да, я там проект сделал и туда все распаковал, DLL тоже там же лежит рядом с файлом *.pro

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)