109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
1 | |
Подключение статических библиотек в Creator01.11.2012, 15:48. Показов 36804. Ответов 15
Метки нет (Все метки)
Всем доброго времени суток.
Возникла необходимость подключения статических библиотек в Creator(в Windows). Но как я не крутил в файле проекта LIBS с *lib - ами, максимум чего добился это что компилятор не ругается и находятся все библиотеки, но после старта программа сразу вылетает с ошибкой "завершился с кодом -1073741515" И в интернете не смог найти ничего путного.
0
|
01.11.2012, 15:48 | |
Ответы с готовыми решениями:
15
Подключение библиотек KDE в Qt Creator Qt creator не видит библиотек Подключение сторонних статических библиотек Подключение скомпилированных статических библиотек с++ VS15 |
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
01.11.2012, 16:49 [ТС] | 3 |
С дебагером тоже вылетает ошибка, только её код в hex виде.
А может есть какие-н рабочие примеры подключения статических библиотек к проекту, чтобы увидеть что такое в Creator-е вообще возможно. Хочеться сам принцип понять.
0
|
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 485
|
|
01.11.2012, 19:50 | 5 |
Сообщение было отмечено как решение
Решение
Счас я напишу - в прошлом много наимаялся..
Вот мои примеры (подразумеваю, что библиотеки откомпилились), в *.pro необходимо добавить (пример для моей библиотеки MANAGER)... Linux: INCLUDEPATH += ../LIB/MANAGER/ LIBS += -L../LIB/MANAGER/ -lMANAGER Winda: INCLUDEPATH += ..//LIB//MANAGER// LIBS += -L..//LIB//MANAGER// -lMANAGER Будьте внимательны с каталогами, теневыми сборками, путями и т.д. И пофиг, что название библиотеки начинается с lib(libMANAGER.a). Особое внимание слэши - в винде они парные!!! А далее подключается где надо только хейдер: #include <manager.h> и все работает. Вот и все! Рекомендация: открываете в одной сессии QTCreatora все ваши статические библиотеки и сам проект(делаете его активным). А далее-Очистить все-Пересобрать все-И просто скомпилить и запустить проект. А если будет вылетать, то тогда выход один = дебаг с точками останова и т.д. Удачи! Добавлено через 7 минут Да чуть не забыл, перед началом работы с вашим проектом *.pro уже должен быть сохраненным и для подключения хейдера тоже. Вообще его открытым редактором лучше не держать, и еще все коменты в нем "#" - коментят строчку полностью. Теперь вроде все. Удачи!
3
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
||||||||||||||||
02.11.2012, 10:57 [ТС] | 6 | |||||||||||||||
_SASA_, спасибо за подробное описание, но всё равно не помогло
Судя по ошибкам компилятора заголовочный файл он нашёл (undefined reference to '_imp_sum'), Но библиотеку ему подтянуть так и не удалось(подключаю её как описано в *.pro файле ниже). При других вариантах подключения в про файле он вообще говорит, что не может найти файл test_lib.lib. ЗЫ Статическая библиотека сделана на билдере для тестов(может в этом тоже что-то есть). Привожу исходные коды файлов: ConnectLib.pro
0
|
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 485
|
|
02.11.2012, 14:16 | 9 |
Идите путем меньшего сопротивления:
1) Сделайте всё на QT: тестовый проектик + библиотеку статическую... посмотрите как оно работает - просто простенький пример кода в креаторе. 2) Сделайте для проекта QT свою библиотеку а не буилдера (он все равно устарел - уходить от него прийдется как ни крути) 3) Да, ещё у меня в путях ".." - везде две точки == каталог вверх!!! Что означает "." - как с текущего каталога оно пойдёт не знаю сам. "LIBS += -L.//ipp//libs//-ltest_lib.lib" - у вас неверно "LIBS += -L.//ipp//libs// -ltest_lib.lib" - верно наверно так (перед -l пробел же). Вот и видиться только хейдер без библиотеки, естественно!!! Удачи!
0
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
05.11.2012, 09:50 [ТС] | 10 |
Если поставить пробел перед -ltest_lib.lib, то он пишет, что "cannot find -ltest_lib.lib".
А библиотеку я сейчас для себя сделал, чтобы протестировать как статические подключать, тк есть куча статических библиотек - уже написаных и переписать их нет никакой возможности.
0
|
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 485
|
|
05.11.2012, 23:07 | 11 |
Вот наш местный "Гуру" (не многословный - сам затрудняется)
посоветовал почитать: http://ru.wikipedia.org/wiki/NASM - да немного, но все же... С Builder = omf, и др. микрософтовские стандарты и т.д.... И гарантий никаких, что сделает конвертор, и нужно библиотеку чем-то, как-то, куда-то конвертировать... Короче, - лучше, чтоб его диагноз на сей раз не оправдался!!! ________________________________________________________ От меня - попробуйте все ж перейти на QT формат библиотек, собрав свою мелкую библиотечку не из всей test_lib, а только частично то, что нужно и необходимо для запуска проекта!!!
1
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
06.11.2012, 11:01 [ТС] | 12 |
Я думал что насчёт разных видов библиотек - действуют только на dll. Может для тестов подключения на чём-н другом библиотку написать.
А так библиотеки, которые мне нужны - если динамически, то подключаются и даже под UNIX работают, но их там просто целая охапка и они завязаны друг на друга и когда я пробую подключать их статически я даже не понимаю что конкретно я не подключил. Может "местный гуру" посоветует где написать библиотеку, чтобы оттестить её статическое подключение?
0
|
136 / 140 / 7
Регистрация: 22.08.2011
Сообщений: 485
|
|
06.11.2012, 11:40 | 13 |
"Гуру" - не знает - говорит, что конвертация = тупиковый путь,
он пробовал = могут быть не перводимые макросы, перменные! Я гогда-то делал одну статичекую Qt библиотеку, состоящую из множества динамических (тоже QT) - чтоб меньше подключать! Совет: делать с нуля и самому, может что-то и получиться!!! Удачи!
1
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
06.11.2012, 14:26 [ТС] | 14 |
Спасибо за советы и ответы, но я ещё всё таки не буду сдаваться и попробую как-нибудь подключить.
Странно думать, что многие среды между собой подключают библиотечки, а в Qt такой функции нет и для людей у кого много наработок старых имеется это очевидный минус.
0
|
109 / 36 / 3
Регистрация: 08.08.2009
Сообщений: 134
|
|
06.11.2012, 17:12 [ТС] | 16 |
Бывает довольно сложно пересобирать без исходников, когда либы брались уже не помнишь где
0
|
06.11.2012, 17:12 | |
06.11.2012, 17:12 | |
Помогаю со студенческими работами здесь
16
Использование статических библиотек Отличие статических библиотек и header файлов Вопрос по теории касаемо статических библиотек *.a Скрытие warning сторонних статических библиотек в g++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |