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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: сборка библиотеки с созданием *.lib файла.  (Прочитано 5271 раз)
Ascet
Гость
« : Март 30, 2015, 08:27 »

Есть библиотечка, при сборке её с указанием в про файле следующего:

Код:
TEMPLATE = lib

в папке сборки есть файлы *.a, но нет файлов *.lib, а для подключения этой библиотечки к другому проекту Qt 4.8 просит *.lib файл. Чтение интернетов мне не помогло... Можете для дурака рассказать что надо сделать, чтоб собрать проект и получить *.lib файлы?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Март 30, 2015, 08:32 »

На винде была такая фигня -- переименовал "a" в "lib" (или наоборот) и все нашлось и собралось Веселый
Записан

Ascet
Гость
« Ответ #2 : Март 30, 2015, 08:52 »

Серьезно? О_о
Мало верится конечно, но попробую)
Записан
Ascet
Гость
« Ответ #3 : Март 30, 2015, 08:57 »

Ну как и чувствовал фокус не удался
Цитировать
:-1: ошибка: No rule to make target 'E:/progs/NovAtel/NovAtel/3rdParty/QSerialPort/lib/libQt5SerialPortd.a', needed by 'debug\NovAtel.exe'.  Stop.
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #4 : Март 30, 2015, 09:29 »

на сколько я в курсе - *.lib по умолчанию использует msvs, а *.a - mingw. Если компилятор один и тот же - тогда странно всё, покажите ваши *.pro файлы.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
Ascet
Гость
« Ответ #5 : Март 30, 2015, 09:33 »

ммм... То есть если я использую mingw, а на целевой системе msvs, то маневр не выйдет?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Март 30, 2015, 11:32 »

Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны).

1) Если нужно подключить в студии MinGW-шную dll-ку, то просто подключаем как обычно

2) Если нужно в MinGW студийную dll-ку - то тоже без проблем.

Если же возникают проблемы, то, вероятно библиотеки собраны без совместимости (или как там их) и нужно их конвертировать. Точнее конвертировать не сами *.dll, а их *.lib или *.a ипморт-файлы. В гугле поищи что - да как.

PS: Ну,  в твоем случае, вероятнее всего ты что-то делаешь не так.
Записан

ArchLinux x86_64 / Win10 64 bit
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #7 : Март 30, 2015, 11:50 »

Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны).
Cудя по выхлопу , библиотечка то твоя. Так что? Взлетит ?  Подмигивающий

Ascet, тебе надо собирать библиотеку тем же компилятором, которым собираеш свою программу.
« Последнее редактирование: Март 30, 2015, 11:57 от alex312 » Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #8 : Март 30, 2015, 11:50 »

Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны).
Вроде нет единого стандарта экспорта С++ окружения (?, не знаю, как правильно написать) в dll, и mingw с msvs совершенно в этом плане не совместимы. Для разных компиляторов стандартизированы только plain C вызовы. Или я где-то что то упустил? Улыбающийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #9 : Март 30, 2015, 12:17 »

Цитировать
Cудя по выхлопу , библиотечка то твоя. Так что? Взлетит ?

Понятия не имею.

Цитировать
Вроде нет единого стандарта экспорта С++ окружения

Да, точно: http://www.mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_Brands

(у меня все взлетало при использовании C-шных dll-лок, но с C++ наврятли.)

В общем, не взлетит. Нужно все собирать в одном окружении (как выше уже отписались).
Записан

ArchLinux x86_64 / Win10 64 bit
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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