crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

14 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> QtSerialPort, Проблема сборки QtSerialPort под Windows
lkslks
  опции профиля:
сообщение 18.10.2012, 8:40
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 18.10.2012
Пользователь №: 3566

Спасибо сказали: 0 раз(а)




Репутация:   0  


При сборке получаю такое сообщение:
....
g++ -Wl,-s -o release\libSerialPort.a release/serialport.o release/serialportinfo.o release/serialport_win.o release/serialportinfo_win.o
-L".\lib" -L"c:\Qt\4.8.3\lib" -lsetupapi -ladvapi32 -lQtCore4
c:/qt/qtcreator-2.5.2/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `WinMain@16' collect2: ld returned 1 exit status
-------------------
Qt 4.8.3
MinGW 4.4.0
Кто может прояснить ситуацию ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 18.10.2012, 12:16
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Все отлично собирается. Смотри проблему у себя со своей Qt и MinGw.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 18.10.2012, 12:37
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 178
Регистрация: 6.6.2012
Пользователь №: 3414

Спасибо сказали: 23 раз(а)




Репутация:   2  


Добавь в .pro-файл строки
TEMPLATE = lib
CONFIG += staticlib


Виноват, ерунду написал.

Сообщение отредактировал iReset - 18.10.2012, 12:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 18.10.2012, 15:21
Сообщение #4


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Аналогичная проблема.

Лог сборки:
Раскрывающийся текст
15:19:50: Выполняется сборка проекта serialport...
15:19:51: Запускается: «c:\qtsdk\desktop\qt\4.8.1\mingw\bin\qmake.exe» C:\Users\razr\Desktop\qserialdevice-qserialdevice\serialport.pro -r -spec win32-g++ "CONFIG+=release"
Reading C:/Users/razr/Desktop/qserialdevice-qserialdevice/src/src.pro [C:/Users/razr/Desktop/serialport-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_______/src]
15:19:52: Процесс «c:\qtsdk\desktop\qt\4.8.1\mingw\bin\qmake.exe» завершился нормально.
15:19:52: Запускается: «C:\QtSDK\mingw\bin\mingw32-make.exe»
cd src\ && C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile
mingw32-make.exe[1]: Entering directory `C:/Users/razr/Desktop/serialport-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_______/src'
C:/QtSDK/mingw/bin/mingw32-make.exe -f Makefile.Release
mingw32-make.exe[2]: Entering directory `C:/Users/razr/Desktop/serialport-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_______/src'
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DSERIALPORT_BUILD -DSERIALPORT_SHARED -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include" -I"..\..\qserialdevice-qserialdevice\include" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"release" -I"..\..\qserialdevice-qserialdevice\src" -I"." -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o release\serialport.o ..\..\qserialdevice-qserialdevice\src\serialport.cpp
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DSERIALPORT_BUILD -DSERIALPORT_SHARED -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include" -I"..\..\qserialdevice-qserialdevice\include" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"release" -I"..\..\qserialdevice-qserialdevice\src" -I"." -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o release\serialportinfo.o ..\..\qserialdevice-qserialdevice\src\serialportinfo.cpp
g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DSERIALPORT_BUILD -DSERIALPORT_SHARED -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include" -I"..\..\qserialdevice-qserialdevice\include" -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\include\ActiveQt" -I"release" -I"..\..\qserialdevice-qserialdevice\src" -I"." -I"c:\QtSDK\Desktop\Qt\4.8.1\mingw\mkspecs\win32-g++" -o release\serialportengine_p_win.o ..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp
In file included from ..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:45:
..\..\qserialdevice-qserialdevice\src\/serialportengine_p_win.h:17:50: error: QtCore/private/qwineventnotifier_p.h: No such file or directory
In file included from ..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:45:
..\..\qserialdevice-qserialdevice\src\/serialportengine_p_win.h:65: error: expected class-name before ',' token
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In destructor 'virtual WinSerialPortEngine::~WinSerialPortEngine()':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:140: error: 'setEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In member function 'virtual bool WinSerialPortEngine::isReadNotificationEnabled() const':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:879: error: 'isEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In member function 'virtual bool WinSerialPortEngine::isWriteNotificationEnabled() const':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:925: error: 'isEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In member function 'virtual bool WinSerialPortEngine::event(QEvent*)':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1175: error: 'QWinEventNotifier' has not been declared
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In member function 'bool WinSerialPortEngine::createEvents(bool, bool)':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1210: error: 'setHandle' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp: In member function 'void WinSerialPortEngine::setMaskAndActivateEvent()':
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1246: error: 'isEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1247: error: 'setEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1250: error: 'isEnabled' was not declared in this scope
..\..\qserialdevice-qserialdevice\src\serialportengine_p_win.cpp:1251: error: 'setEnabled' was not declared in this scope
mingw32-make.exe[2]: Leaving directory `C:/Users/razr/Desktop/serialport-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_______/src'
mingw32-make.exe[1]: Leaving directory `C:/Users/razr/Desktop/serialport-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_______/src'
mingw32-make.exe[2]: *** [release/serialportengine_p_win.o] Error 1
mingw32-make.exe[1]: *** [release] Error 2
mingw32-make.exe: *** [sub-src-make_default] Error 2
15:20:03: Процесс «C:\QtSDK\mingw\bin\mingw32-make.exe» завершился с кодом 2.
Возникла ошибка при сборке проекта serialport (цель: Desktop)
Во время выполнения сборки на этапе «Сборка»
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 18.10.2012, 15:56
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата
Аналогичная проблема.


Во 1: Это не QtSerialPort а QSerialDevice.
Во 2: Не аналогичная проблема:
Цитата
..\..\qserialdevice-qserialdevice\src\/serialportengine_p_win.h:17:50: error: QtCore/private/qwineventnotifier_p.h: No such file or directory

Эта проблема уже стопитсотраз обсуждалась: нжно взять qwineventnotifier_p.h из сорцов Qt.
Гугл в помощь.
В 3: QSerialDevice больше не поддерживается, поэтому исправляйте баги сами.

Сообщение отредактировал kuzulis - 18.10.2012, 15:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 18.10.2012, 16:49
Сообщение #6


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Так кого лучше использовать?
QtSerialPort или QSerialDevice?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 18.10.2012, 18:42
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата
QtSerialPort или QSerialDevice?

Почитай тут и тут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lkslks
  опции профиля:
сообщение 18.10.2012, 19:01
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 18.10.2012
Пользователь №: 3566

Спасибо сказали: 0 раз(а)




Репутация:   0  


QSerialDevice уже не поддерживается, вместо него QtSerialPort.
Подробности и исходники здесь: http://qt-project.org/wiki/QtSerialPort
Вот рекомендуемый процесс сборки с этого сайта:

для Qt4:

mkdir serialport-build-release
cd serialport-build-release
qmake ../serialport-src/serialport.pro CONFIG+=release
make (or nmake)
cd ..
mkdir serialport-build-debug
cd serialport-build-debug
qmake ../serialport-src/serialport.pro //or can add CONFIG+=debug
make (or nmake)
cd ..

cd serialport-build-release // install release build
make install (or nmake install)
cd ..
cd serialport-build-debug // install debug build
make install (or nmake install)

При выполнении nmake появлялась ошибка с отсутствием WinMain@16, описанная в начале темы.
После изменения строки qmake ........... на
qmake ../serialport-src/serialport.pro CONFIG+=release CONFIG+=DLL ошибка исчезла.
Правда, осталась проблемка с отсутствием одного файла при компиляции примера Terminal, с этим разберусь чуть позже.
Да, библиотека собралась и нормально вызывается.
Буду тестировать дальше.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 18.10.2012, 19:03
Сообщение #9


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Почитал. Понял.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lkslks
  опции профиля:
сообщение 19.10.2012, 8:51
Сообщение #10


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 18.10.2012
Пользователь №: 3566

Спасибо сказали: 0 раз(а)




Репутация:   0  


1. Проект QtSeriallPort скомпилировался после добавления CONFIG += DLL. Подозреваю, что виноваты настройки версии Qt4.8.3 (у меня).

2. Не скомпилировался пример Terminal. Выяснил, что причина в том, что не собирается файл ресурсов из terminal.qrc в файл qrc_terminal.cpp.
Пробовал подключать ресурсы в QtCreator 2.5.2. Не получается, тот же результат, даже с тестовым проектом. Решил, что у меня QtCreator неверно настроен.
Создал файл вручную командой "rcc -o qrc_terminal.cpp terminal.qrc" и подсунул куда надо, пример скомпилировался и заработал.

Есть ли у кого какие идеи по неработающим ресурсам ? Подозреваю настройки Qt4.8.3, но опыта не хватает найти причину.

PS: Ресурсы, конечно не главное в данном проекте.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

14 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 19:22