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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Добавление сторонней библиотеки в проект  (Прочитано 4770 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Сентябрь 08, 2015, 15:38 »

Привет друзья!
Я работаю под windows и у меня имеется 3 компилятора: mingw32, mingw64, msvc2013.
Есть библиотека трижды скомпилированная под каждый из компиляторов.
Как теперь её правильно подключить средствами qmake чтобы ничего не порушилось даже при перемещении разработки на другую машину?
« Последнее редактирование: Март 22, 2016, 12:44 от __Heaven__ » Записан
sociopath
Гость
« Ответ #1 : Сентябрь 09, 2015, 10:09 »

Ну, например, собранную либу yourlib раскинуть по разным каталогам (в пределах каталога с исходниками офк):
win32-msvc2013: LIBS += -L$$PWD/../libs/msvc2013 -lyourlib
win32-g++: LIBS += -L$$PWD/../libs/mingw32 -lyourlib
win32-g++-64: LIBS += -L$$PWD/../libs/mingw64 -lyourlib
« Последнее редактирование: Сентябрь 09, 2015, 10:11 от sociopath » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #2 : Сентябрь 09, 2015, 10:29 »

Да, это очевидно, но есть одно но, почему я и создал тему:
Код:
win32-msvc2013: message(win32-msvc2013)
win32-g++: message(win32-g++)
win32-g++-64: message(win32-g++-64)
При выборе mingw64 выдаётся сообщение win32-g++
Записан
zavitaliy
Гость
« Ответ #3 : Сентябрь 18, 2015, 09:44 »

Можно попробовать вот такой вариант:
Код:
contains(QMAKE_HOST.arch, x86_64) {
    message(x86_64)
} else {
    message(x86)
}
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #4 : Сентябрь 18, 2015, 12:08 »

Код:
contains(QMAKE_HOST.arch, x86_64) {
    message(x86_64)
} else {
    message(x86)
}
Спасибо. То, что нужно!
Правда, не понятно, почему этого нет в документации.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #5 : Март 22, 2016, 12:47 »

Добавлю.
Ещё придумал тактику выносить в LibDirs.pri пути к библиотекам типа:
Код:
QWT_DIR = C:\Qwt-6.1.2
В контроль версий добавить правило игнорировать этот файл.
Таким образом можно даже безболезненно переносить свой проект с машины на машину.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Март 22, 2016, 18:00 »

А еще можно создать папочку типа c:\ExtLibs и все библиотеки класть туда.
Тогда все пути к либам будут иметь вид QWT_DIR = %EXTLIBS_DIR%\Qwt-6.1.2
Это еще более переносимо)
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Март 22, 2016, 20:00 »

Ну, реализация уже подразумевалась, что у каждого пользователя своя. Вот у меня зависящая ещё и от компилятора. Хотя, если честно, такая необходимость уже отпала, использую только mingw64.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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