Russian Qt Forum
Ноябрь 24, 2024, 13:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Проблема программирования LPT с использованием inpout32.dll  (Прочитано 12588 раз)
karib
Гость
« : Март 17, 2011, 11:37 »

Уважаемые, доброго времени суток!
Прошу не пинать ногами, а помоч словом и делом ;o)))
Как-то так приключилось, что заинтересовался программированием, понадобилось управлять устройством через LPT порт. Для начала попробовал написать простенькую прогу (должна зажигать и гасить светодиод), чтобы понять как это всё работает. В программе использовал библиотеку inpout32.dl. Программа компилится без ошибок, но exe-шник не создается и в Консоли сборки выводится следующее сообщение:

Цитировать
debug/LED_LPT.o:C:\Qt\myprojects\LED_LPT-build-desktop/../LED_LPT/LED_LPT.cpp:33: undefined reference to `Out32(short, short)@8'

debug/LED_LPT.o:C:\Qt\myprojects\LED_LPT-build-desktop/../LED_LPT/LED_LPT.cpp:40: undefined reference to `Out32(short, short)@8'

collect2: ld returned 1 exit status

mingw32-make[1]: *** [debug\LED_LPT.exe] Error 1

mingw32-make: *** [debug] Error 2

Програмуля писалась с использованием стандартных Qt приблуд скачанных с сайта разработчика. В файле *.pro подключил библиотеку:
Цитировать
QT       += core gui
TARGET = LED_LPT
TEMPLATE = app
SOURCES += main.cpp\
        LED_LPT.cpp
HEADERS  += LED_LPT.h
FORMS    += LED_LPT.ui

LIBS += \
   -LC:/Qt/myprojects/LED_LPT\
   -linpout32
INCLUDEPATH += C:\Qt\myprojects\LED_LPT

файлы *.lib и *.dll положил в соответствующие каталоги. Подскажите, уважаемые, что не так. Заранее спасибо.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Март 17, 2011, 11:40 »

Нужно еще прилинковать либу, где определен Out32(short, short).
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
karib
Гость
« Ответ #2 : Март 17, 2011, 11:47 »

Нужно еще прилинковать либу, где определен Out32(short, short).

я так понял, что строками:
Цитировать
LIBS += \
   -LC:/Qt/myprojects/LED_LPT\
   -linpout32
либу я и прилинковал. или еще что-то нужно прописать?
Записан
karib
Гость
« Ответ #3 : Март 17, 2011, 14:23 »

Уважаемые Гуру, а может ли такое быть, что подключаемый либ-файл (*.lib) получен в мелкософтовской студии и с Qt у него что-то не срастает?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Март 17, 2011, 14:27 »

Вполне, если собираешь при помощи MinGW.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
karib
Гость
« Ответ #5 : Март 17, 2011, 15:14 »

Вполне, если собираешь при помощи MinGW.

Засада, блин.
Отконвертировали Qt проект под Студию и моя прога запустилась (светодиод, правда в потр не тыкал).
Может кто подскажет, что можно использовать для управления LPT
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Март 17, 2011, 15:17 »

тут почитай
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
karib
Гость
« Ответ #7 : Март 17, 2011, 15:28 »

угу, спасибо! ;o)
Записан
karib
Гость
« Ответ #8 : Апрель 07, 2011, 10:19 »

Проблема решилась.
Похоже, что компилятор MinGW действительно не может работать с этой библиотекой. Все заработало после того как стал использовать компилятор от майкрософтофской студии (установил Microsoft Visual C++ 2008 Express Edition).
Всем спасибо!
Записан
vasilii_ru
Гость
« Ответ #9 : Февраль 10, 2012, 01:09 »

У меня стоит таже задача: работа с LPT портом, установлена Qt с креатором под VS2008. При обращении к функцией Out32(..) библиотеки  выдает ошибку:
test_ion.obj:: error:  unresolved external symbol "void __stdcall Out32(short,short)" (?Out32@@YGXFF@Z) referenced in function "private: void __thiscall test_ion::on_StartButton_clicked(void)" (?on_StartButton_clicked@test_ion@@AAEXXZ)
Помогите пожалуйста разобраться что не так Непонимающий
Записан
vasilii_ru
Гость
« Ответ #10 : Февраль 10, 2012, 20:58 »

Разобрался надо было добавить строку "#pragma comment( lib, "inpout32.lib" )", видимо строки "LIBS += -LC:\Qt\2010.05\...\inpout32.lib" в файле *.pro недостаточно
Записан
Edynchik
Гость
« Ответ #11 : Февраль 21, 2012, 17:35 »

Проблема решилась.
Похоже, что компилятор MinGW действительно не может работать с этой библиотекой. Все заработало после того как стал использовать компилятор от майкрософтофской студии (установил Microsoft Visual C++ 2008 Express Edition).
Всем спасибо!
Добрый вечер!
возникла такая же проблема с этой библиотекой. Как использовать компилятор от VS 2010 в creator? т.е в инструментариях он есть, а выбрать в свойствах проета не позволяет. Непонимающий
Спасобо.
Записан
Edynchik
Гость
« Ответ #12 : Февраль 22, 2012, 09:21 »

у меня две...creator(первая) и vs2010 с скомпилированной библиотекой(вторая)...и в creator не могу подставить компилятор от VS...
Записан
QuAzI
Гость
« Ответ #13 : Февраль 22, 2012, 10:32 »

А выложите кто-нить эту библу, аж интересно стало, что там не линкуется.
Записан
Edynchik
Гость
« Ответ #14 : Февраль 22, 2012, 10:52 »

1) Creator - это не Qt. Это инструмент, собранный с помощью Qt.
2) Инструменты -> Параметры -> Сборка и запуск -> Профили Qt -> Добавить -> Ткнуть в qmake, скомпилированный в VS 2010. Теперь на текущем проекте идём в "Проекты"  и меняем профиль на Qt для VS 2010.
Спасибо,так и вышло...компилятор подставился, но библиотека так и не скомпилировалась...но библиотека почему то не линкуется,можете посмотреть что я делаю не так?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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