Russian Qt Forum
Март 28, 2024, 19:07
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Дополнительные компоненты
>
Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode) (Прочитано 6488 раз)
Wargos
Новичок
Offline
Сообщений: 5
Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
:
Июнь 23, 2020, 16:04 »
Библиотека добавлена в .pro файл следующими строками
Код:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Libraries/release/ -lvclient_iphone_sim_release
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Libraries/debug/ -lvclient_iphone_sim_release
else:unix: LIBS += -L$$PWD/Libraries/ -lvclient_iphone_sim_release
INCLUDEPATH += $$PWD/Libraries
DEPENDPATH += $$PWD/Libraries
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/release/libvclient_iphone_sim_release.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/debug/libvclient_iphone_sim_release.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/release/vclient_iphone_sim_release.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/debug/vclient_iphone_sim_release.lib
else:unix: PRE_TARGETDEPS += $$PWD/Libraries/libvclient_iphone_sim_release.a
Но после в Xcode вручную нужно менять линковку данной библиотеки в списке. (на фото показано)
ВОПРОС: Можно ли как-то задать порядок линковки библиотеки прямо из .pro файла для генерации в Xcode?
Записан
kambala
Джедай : наставник для всех
Online
Сообщений: 4724
Re: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
Ответ #1 :
Июнь 23, 2020, 16:56 »
скорее всего никак. Но можно написать небольшой скрипт, который будет это делать после генерации проекта, см.
https://github.com/CocoaPods/Xcodeproj
или
https://github.com/tuist/XcodeProj
судя по названию, эта библиотека собрана под симулятор. Если для сборки под симулятор и девайс планируется работать в одном Xcode проекте, то тебе придется либо делать 2 таргета в Xcode либо удалить либу из этого «автоматического» списка и линковать нужную либу руками, передав соответствующий флаг.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Wargos
Новичок
Offline
Сообщений: 5
Re: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
Ответ #2 :
Июнь 24, 2020, 10:54 »
Цитата: kambala от Июнь 23, 2020, 16:56
скорее всего никак. Но можно написать небольшой скрипт, который будет это делать после генерации проекта, см.
https://github.com/CocoaPods/Xcodeproj
или
https://github.com/tuist/XcodeProj
судя по названию, эта библиотека собрана под симулятор. Если для сборки под симулятор и девайс планируется работать в одном Xcode проекте, то тебе придется либо делать 2 таргета в Xcode либо удалить либу из этого «автоматического» списка и линковать нужную либу руками, передав соответствующий флаг.
Вы в самом конце сказали "передав соответствующий флаг". Прошу прощения, а как его использовать? Флаг в .pro файле или обычный bool в .cpp или .qml файле??
Ну или как им пользоваться вообще? =)
Записан
kambala
Джедай : наставник для всех
Online
Сообщений: 4724
Re: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
Ответ #3 :
Июнь 24, 2020, 12:24 »
флаг линковщика
Либо в .pro либо прямо в Xcode. Для .pro файла будет что-то вроде этого:
Код:
ios-sim {
LIBS += -lmy_simulator_lib
}
else: ios-device {
LIBS += -lmy_device_lib
}
ios-sim и ios-device я написал наугад, наверняка эти селекторы как-то по-другому называются. Если эти либы лежат в разных папках, то надо будет также указать разный параметр -L
в Xcode это настраивается через OTHER_LDFLAGS (в Build Settings): там надо нажать плюсик и выбрать Any Simulator SDK и Any iOS SDK, в них вписать такие же флажки как и в .pro
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Wargos
Новичок
Offline
Сообщений: 5
Re: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
Ответ #4 :
Июнь 24, 2020, 17:34 »
Цитата: kambala от Июнь 24, 2020, 12:24
флаг линковщика
Либо в .pro либо прямо в Xcode. Для .pro файла будет что-то вроде этого:
Код:
ios-sim {
LIBS += -lmy_simulator_lib
}
else: ios-device {
LIBS += -lmy_device_lib
}
ios-sim и ios-device я написал наугад, наверняка эти селекторы как-то по-другому называются. Если эти либы лежат в разных папках, то надо будет также указать разный параметр -L
в Xcode это настраивается через OTHER_LDFLAGS (в Build Settings): там надо нажать плюсик и выбрать Any Simulator SDK и Any iOS SDK, в них вписать такие же флажки как и в .pro
Спасибо, займусь этим. Если что напишу вам)
Записан
Wargos
Новичок
Offline
Сообщений: 5
Re: Как изменить линковку библиотеки в Link Binary With Libraries (Xcode)
«
Ответ #5 :
Июнь 25, 2020, 18:54 »
Нашел решение!!!
Библиотека которую я использовал конфликтовала с qtlibpng.
Решение состояло в том, что бы в .pro файле дописать в первых 3-х строчках добавления НАШЕЙ библиотеки -qtlibpng
Вышло так:
Код:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib/release/ -lz.1
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib/debug/ -lz.1
else:unix: LIBS += -L$$PWD/../../../../usr/lib/ -lz.1
INCLUDEPATH += $$PWD/../../../../usr/lib
DEPENDPATH += $$PWD/../../../../usr/lib
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/Libraries/release/ -lqtlibpng -lvclient_iphone_sim_release
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/Libraries/debug/ lqtlibpng -lvclient_iphone_sim_release
else:unix: LIBS += -L$$PWD/Libraries/ -lqtlibpng -lvclient_iphone_sim_release
INCLUDEPATH += $$PWD/Libraries
DEPENDPATH += $$PWD/Libraries
win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/release/libvclient_iphone_sim_release.a
else:win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/debug/libvclient_iphone_sim_release.a
else:win32:!win32-g++:CONFIG(release, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/release/vclient_iphone_sim_release.lib
else:win32:!win32-g++:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$PWD/Libraries/debug/vclient_iphone_sim_release.lib
else:unix: PRE_TARGETDEPS += $$PWD/Libraries/libvclient_iphone_sim_release.a
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...