Название: сборка библиотеки с созданием *.lib файла. Отправлено: Ascet от Март 30, 2015, 08:27 Есть библиотечка, при сборке её с указанием в про файле следующего:
Код: TEMPLATE = lib в папке сборки есть файлы *.a, но нет файлов *.lib, а для подключения этой библиотечки к другому проекту Qt 4.8 просит *.lib файл. Чтение интернетов мне не помогло... Можете для дурака рассказать что надо сделать, чтоб собрать проект и получить *.lib файлы? Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: gil9red от Март 30, 2015, 08:32 На винде была такая фигня -- переименовал "a" в "lib" (или наоборот) и все нашлось и собралось :D
Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: Ascet от Март 30, 2015, 08:52 Серьезно? О_о
Мало верится конечно, но попробую) Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: Ascet от Март 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. Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: Kurles от Март 30, 2015, 09:29 на сколько я в курсе - *.lib по умолчанию использует msvs, а *.a - mingw. Если компилятор один и тот же - тогда странно всё, покажите ваши *.pro файлы.
Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: Ascet от Март 30, 2015, 09:33 ммм... То есть если я использую mingw, а на целевой системе msvs, то маневр не выйдет?
Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: kuzulis от Март 30, 2015, 11:32 Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны).
1) Если нужно подключить в студии MinGW-шную dll-ку, то просто подключаем как обычно (http://stackoverflow.com/questions/2096519/from-mingw-static-library-a-to-visual-studio-static-library-lib) 2) Если нужно в MinGW студийную dll-ку - то тоже без проблем. Если же возникают проблемы, то, вероятно библиотеки собраны без совместимости (или как там их) и нужно их конвертировать. Точнее конвертировать не сами *.dll, а их *.lib или *.a ипморт-файлы. В гугле поищи что - да как. PS: Ну, в твоем случае, вероятнее всего ты что-то делаешь не так. Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: alex312 от Март 30, 2015, 11:50 Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны). Cудя по выхлопу , библиотечка то твоя. Так что? Взлетит ? ;)Ascet, тебе надо собирать библиотеку тем же компилятором, которым собираеш свою программу. Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: Kurles от Март 30, 2015, 11:50 Выйдет и так и наоборот (конечно, если сами shared библиотеки правильно собраны). Вроде нет единого стандарта экспорта С++ окружения (?, не знаю, как правильно написать) в dll, и mingw с msvs совершенно в этом плане не совместимы. Для разных компиляторов стандартизированы только plain C вызовы. Или я где-то что то упустил? :)Название: Re: сборка библиотеки с созданием *.lib файла. Отправлено: kuzulis от Март 30, 2015, 12:17 Цитировать Cудя по выхлопу , библиотечка то твоя. Так что? Взлетит ? Понятия не имею. Цитировать Вроде нет единого стандарта экспорта С++ окружения Да, точно: http://www.mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_Brands (у меня все взлетало при использовании C-шных dll-лок, но с C++ наврятли.) В общем, не взлетит. Нужно все собирать в одном окружении (как выше уже отписались). |