crossplatform.ru

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


  Ответ в Проблема с линкером
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Andrewshkovskii Дата 10.6.2010, 11:42
  Полазив вчера весь день по форумам, я нашел вроде бы решение, а вроде бы и нет...
Значит так , надо было изменить файл проекта следующим образом :
TARGET = TelephonyEx
TEMPLATE = app

SOURCES += main.cpp \
    telephonyexwindow.cpp

HEADERS += telephonyexwindow.h

FORMS += telephonyexwindow.ui

DEFINES += XQTELEPHONY_NO_LIBRARY
include(D:\storage\programming\QtSymbian\ext\extensions\src\telephony\telephony.pri)

INCLUDEPATH += D:\storage\programming\QtSymbian\ext\extensions\include
INCLUDEPATH += ..\..\include \
            D:\storage\programming\QtSymbian\Symbian\SDK\epoc32\include# это я добавил сам
DEPENDPATH += D:\storage\programming\QtSymbian\ext\extensions\src\telephony

Т.е. переместить исходники либы в проект. Но в исходниках либы есть другие инклюды , и их почему-то не видно. Это инклюды лежат
у меня в D:\storage\programming\QtSymbian\Symbian\SDK\epoc32, как видно из .pro файла, я их добавил в путь к инклюдам, но мейк их всеравно не видит.. В %PATH% тоже прописаны, их получается вообще не видит криэйтор. что же я сделал не так?
===
Вроде сделал, что бы было видно. Но теперь те хидеры, что идут с SDK не собираются, тамошние типы аля "TUint" gcc не знает..
=====
Потом я попробовал все таки справиться с путями к либам и инклюдам, подправил .pro вот так вот :
TARGET = TelephonyEx
TEMPLATE = app

SOURCES += main.cpp \
    telephonyexwindow.cpp

HEADERS += telephonyexwindow.h

FORMS += telephonyexwindow.ui

INCLUDEPATH += ..\..\include \
        D:/storage/programming/QtSymbian/Symbian/SDK/epoc32/include
QMAKE_LIBDIR += D:\storage\programming\QtSymbian\Symbian\SDK\epoc32\release\winscw\udeb \

LIBS += -lxqtelephony

И вернулся к первоначальной ошибке. Может проблема в том, что эти либы собраны другим..компилятором, под другую версию Qt?
Litkevich Yuriy Дата 10.6.2010, 9:16
 
Цитата(Andrewshkovskii @ 9.6.2010, 21:41) *
расширение либы должно быть .a или .dll? или вовсе без расширения.
для pro-файла, без расширения, тогда qmake сам его подставит, в зависимости от платформы.

Цитата(Andrewshkovskii @ 9.6.2010, 21:41) *
И l - это префикс или составляющая имени?
это "маленькая эль", префикс.
Например для:
libqextserialport.a
qextserialport.dll

пишется
-lqextserialport


Есть ещё "большая эль" тоже префикс для пути к библиотеки, но для qmake можно писать так:
INCLUDEPATH += Path/to/qextserialport-1.1/include
QMAKE_LIBDIR += Path/to/qextserialport-1.1/build
LIBS += -lqextserialport

Запись:
QMAKE_LIBDIR += Path/to/qextserialport-1.1/build
Эквивалентна
LIBS = -LPath/to/qextserialport-1.1/build
Andrewshkovskii Дата 9.6.2010, 20:48
  Те исходники точно C++, а вот проблема может быть, что они не заточены по 4.6 (напимер, собраны версией 4.5.. )
Iron Bug Дата 9.6.2010, 20:09
  ещё подобное бывает, когда одни исходники компилятся в сишном формате, а другие - в C++. тогда линкер не может сопоставить расширенные имена и стандартные.
Andrewshkovskii Дата 9.6.2010, 17:41
  Сейчас будет тупой вопрос :
расширение либы должно быть .a или .dll? или вовсе без расширения. И l - это префикс или составляющая имени?
Vass Дата 9.6.2010, 13:47
  Скорее всего вы забыли подключить библиотеки в pro файл
делается это примерно так
LIBS += -L./путь/к/папке/либ \
    -lимялибы 
# имя либы != имя файла либы

Andrewshkovskii Дата 9.6.2010, 12:48
  Скачал себе QT Nokia SDK, что бы девелопить софт под симбиан. Скачал расширение классов для мобильных телефонов Тык , установил все как было сказано в вики. Но есть проблема при линковке проектов , а точнее вот что происходит :
Цитата
Configuration unchanged, skipping qmake step.
Starting: D:/storage/programming/MinGW/bin/mingw32-make.exe -w
mingw32-make: Entering directory `D:/storage/programming/QtSymbian/XQ/extensions/examples/TelephonyEx-build'
D:/storage/programming/MinGW/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/storage/programming/QtSymbian/XQ/extensions/examples/TelephonyEx-build'
linking debug\TelephonyEx.exe
mingw32-make[1]: Leaving directory `D:/storage/programming/QtSymbian/XQ/extensions/examples/TelephonyEx-build'
mingw32-make: Leaving directory `D:/storage/programming/QtSymbian/XQ/extensions/examples/TelephonyEx-build'
debug/telephonyexwindow.o: In function `TelephonyExWindow':
D:\storage\programming\QtSymbian\XQ\extensions\examples\TelephonyEx-build/../telephonyex/telephonyexwindow.cpp:9: undefined reference to `_imp___ZN11XQTelephonyC1EP7QObject'
D:\storage\programming\QtSymbian\XQ\extensions\examples\TelephonyEx-build/../telephonyex/telephonyexwindow.cpp:12: undefined reference to `_imp___ZN11XQTelephony19startMonitoringLineEv'
D:\storage\programming\QtSymbian\XQ\extensions\examples\TelephonyEx-build/../telephonyex/telephonyexwindow.cpp:9: undefined reference to `_imp___ZN11XQTelephonyC1EP7QObject'
D:\storage\programming\QtSymbian\XQ\extensions\examples\TelephonyEx-build/../telephonyex/telephonyexwindow.cpp:12: undefined reference to `_imp___ZN11XQTelephony19startMonitoringLineEv'
debug/telephonyexwindow.o:D:\storage\programming\QtSymbian\XQ\extensions\examples\TelephonyEx-build/../telephonyex/telephonyexwindow.cpp:32: undefined reference to `_imp___ZN11XQTelephony4callERK7QString'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\TelephonyEx.exe] Error 1
mingw32-make: *** [debug] Error 2

Exited with code 2.

Т.е. линкер не может в объектном файле найти вход для функций класса, т.е. как будто не линкует исходники класса TelephonyExWindow. Но как же это так?Все инклюды винды, в про файле пути прописал к хидерам, объектник создается, но не линкуется? В чем может быть проблема? Т.е. я понимаю, что это наврядтли проблема с самим Qt/эти расширением, тут что-то я криво настроил..
Есть какие-нибудь идеи?
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.7.2025, 22:33