Включение несобранной библиотеки в VS/QtCreator-проект
От: _hum_ Беларусь  
Дата: 02.03.18 08:07
Оценка:
Есть проект, который использует функционал сторонней библиотеки, и есть исходники этой сторонней библиотеки. Как бы сделать так, чтобы отдельно не собирать библиотеку, а сразу все в одном проекте? Дело в том, что,
предполагается использование проги на разных платформах, а потому предполагается постоянная перекомпиляция, и не хотелось бы ее количество увеличивать в два раза из-за необходимости еще отдельно постоянно перекомпилировать библиотеку. И еще, нужно иметь возможность легко переносить проект с Visual Studio на QtCreator, соответственно, хотелось бы обойтись общим подходам, который поддерживается и в той, и в другой среде разработки.
Я было пробовал просто включить исходники библиотеки в проект, но при компиляции появились конфликты объектных файлов из-за одинаковых имен...

п.с. CMake не хотелось бы использовать, потому как мой Visual Studio 2013 его вроде бы как не поддерживает.

Спасибо.
Re: Включение несобранной библиотеки в VS/QtCreator-проект
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 02.03.18 08:15
Оценка:
Здравствуйте, _hum_, Вы писали:

__>Есть проект, который использует функционал сторонней библиотеки, и есть исходники этой сторонней библиотеки. Как бы сделать так, чтобы отдельно не собирать библиотеку, а сразу все в одном проекте?

Если либа не меняется, то надо просто один раз её собрать под каждую платформу и всё, не? Если используется один и тот же тулчейн для креэйтера и студии, то проблемы вроде как нет.
Можно попробовать создать свой паке под nuget и кастомный репо на билд сервере после чего подтягивать зависимость оттуда (сам не прбовал).
Sic luceat lux!
Re[2]: Включение несобранной библиотеки в VS/QtCreator-проект
От: _hum_ Беларусь  
Дата: 02.03.18 08:20
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, _hum_, Вы писали:


__>>Есть проект, который использует функционал сторонней библиотеки, и есть исходники этой сторонней библиотеки. Как бы сделать так, чтобы отдельно не собирать библиотеку, а сразу все в одном проекте?

K>Если либа не меняется, то надо просто один раз её собрать под каждую платформу и всё, не? Если используется один и тот же тулчейн для креэйтера и студии, то проблемы вроде как нет.
Во-первых, либа меняется (она тоже в процессе разработки), а во-вторых, платформы не фикисрованы (нужна прога на данном компе — скомпилировал, запустил).
K>Можно попробовать создать свой паке под nuget и кастомный репо на билд сервере после чего подтягивать зависимость оттуда (сам не прбовал).
выглядит сложнее, чем перестроение библиотеки.
Re: Включение несобранной библиотеки в VS/QtCreator-проект
От: Skorodum Россия  
Дата: 02.03.18 08:25
Оценка:
Здравствуйте, _hum_, Вы писали:

__>Есть проект, который использует функционал сторонней библиотеки, и есть исходники этой сторонней библиотеки. Как бы сделать так, чтобы отдельно не собирать библиотеку, а сразу все в одном проекте? Дело в том, что,

__>предполагается использование проги на разных платформах, а потому предполагается постоянная перекомпиляция, и не хотелось бы ее количество увеличивать в два раза из-за необходимости еще отдельно постоянно перекомпилировать библиотеку.
Если менять исходники не надо, то для таких целей можно сделать репозиторий с готовыми бинарями. В файле проекта по умолчанию предполагается, что репозиторий склонирован параллельно проекту, дальше пути зависят от платформы, вида сборки, тулчейна. Можно как сабмодуль.

__>И еще, нужно иметь возможность легко переносить проект с Visual Studio на QtCreator, соответственно, хотелось бы обойтись общим подходам, который поддерживается и в той, и в другой среде разработки.


__>Я было пробовал просто включить исходники библиотеки в проект, но при компиляции появились конфликты объектных файлов из-за одинаковых имен...

Если из исходников сначала генерить библиотеку, а потом с ней линковаться, то таких проблем быть не должно.

__>п.с. CMake не хотелось бы использовать, потому как мой Visual Studio 2013 его вроде бы как не поддерживает.

Как вариант qbs умеет генерить проекты для студии и нативно поддерживается в Креаторе.
Re[2]: Включение несобранной библиотеки в VS/QtCreator-проект
От: _hum_ Беларусь  
Дата: 02.03.18 08:30
Оценка:
Здравствуйте, Skorodum, Вы писали:

__>>Я было пробовал просто включить исходники библиотеки в проект, но при компиляции появились конфликты объектных файлов из-за одинаковых имен...

S>Если из исходников сначала генерить библиотеку, а потом с ней линковаться, то таких проблем быть не должно.
каким образом это можно организовать легко переносимым с VS на QtCreator способом? В VS в одном воркспейсе организовать два проекта?

__>>п.с. CMake не хотелось бы использовать, потому как мой Visual Studio 2013 его вроде бы как не поддерживает.

S>Как вариант qbs умеет генерить проекты для студии и нативно поддерживается в Креаторе.
спасибо, присмотрюсь.
Re[3]: Включение несобранной библиотеки в VS/QtCreator-проект
От: Skorodum Россия  
Дата: 02.03.18 08:35
Оценка:
Здравствуйте, _hum_, Вы писали:

__>Здравствуйте, Skorodum, Вы писали:


__>>>Я было пробовал просто включить исходники библиотеки в проект, но при компиляции появились конфликты объектных файлов из-за одинаковых имен...

S>>Если из исходников сначала генерить библиотеку, а потом с ней линковаться, то таких проблем быть не должно.
__>каким образом это можно организовать легко переносимым с VS на QtCreator способом? В VS в одном воркспейсе организовать два проекта?
В VS2013 это вроде называется солюшен, а не воркспейс. А в целом именно так: два проекта в солюшене, один ваша программа, другой это библиотека и прописать зависимость между ними.
Примерно тоже самое в qbs, насколько он хорошо сгенерит файл проекта для Студии я не знаю, но сделать тестовый Hello World и посмотреть — не проблема.
Re[3]: Включение несобранной библиотеки в VS/QtCreator-проек
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 02.03.18 09:02
Оценка:
Здравствуйте, _hum_, Вы писали:

__>>>Есть проект, который использует функционал сторонней библиотеки, и есть исходники этой сторонней библиотеки. Как бы сделать так, чтобы отдельно не собирать библиотеку, а сразу все в одном проекте?

K>>Если либа не меняется, то надо просто один раз её собрать под каждую платформу и всё, не? Если используется один и тот же тулчейн для креэйтера и студии, то проблемы вроде как нет.
__>Во-первых, либа меняется (она тоже в процессе разработки),
Если меняется, то можно перестраивать на билд сервере ежедневно или по коммиту и подтягивать раз в сутки через кастомную команду в билд скрипте по хуку Pre-Compile, можно сделать проект в солюшене на основе мейкфала котрый будет эти действия производить, но ничего не будет билдить. В креаторе можно сделать тоже самое. Это обычная задача по CM.
__>а во-вторых, платформы не фикисрованы (нужна прога на данном компе — скомпилировал, запустил).
Что это значит? У тебя зоопрак из виндовсов? Дак их вроде всего 3, причём последние два используют один тулчейн.
K>>Можно попробовать создать свой паке под nuget и кастомный репо на билд сервере после чего подтягивать зависимость оттуда (сам не прбовал).
__>выглядит сложнее, чем перестроение библиотеки.
Не выглядит. Надо один раз разобраться с этим, настроить, интегрировать в процесс и всё.
Sic luceat lux!
Отредактировано 02.03.2018 9:06 Kernan . Предыдущая версия . Еще …
Отредактировано 02.03.2018 9:05 Kernan . Предыдущая версия .
Отредактировано 02.03.2018 9:04 Kernan . Предыдущая версия .
Отредактировано 02.03.2018 9:03 Kernan . Предыдущая версия .
Re: Включение несобранной библиотеки в VS/QtCreator-проект
От: Zhendos  
Дата: 02.03.18 11:11
Оценка:
Здравствуйте, _hum_, Вы писали:


__>п.с. CMake не хотелось бы использовать, потому как мой Visual Studio 2013 его вроде бы как не поддерживает.


cmake конечно поддерживает visual studio 2013: https://cmake.org/cmake/help/v3.0/generator/Visual%20Studio%2012%202013.html
так что используйте cmake и все проблемы будут решены.
Вы наверное немного запутались из-за незнания cmake.
Первоначально cmake использовался как генератор проектных файлов,
то есть описание проекта в формате cmake и он генерирует проекты для eclipse/visualt studio/make/nmake
и т.д. и т.п., потом он стал настолько популярным что некоторые IDE
стали поддерживать его напрямую, CLion например, возможно Qt Creator.
команда Visual Studio тоже вроде хотела,
но это никак не мешает использовать его старым способом — сгенерировать
проект для IDE которую используешь.
Re: Включение несобранной библиотеки в VS/QtCreator-проект
От: PM  
Дата: 02.03.18 18:54
Оценка:
Здравствуйте, _hum_, Вы писали:

Я бы сначала поискал эту библиотеку в уже готовом виде в одном из пакетных менеджеров для разработчиков навроде https://bincrafters.github.io или https://github.com/Microsoft/vcpkg
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.