none
Собственная dll RRS feed

Ответы

  • Реализовать то же самое, но другим способом, без статических библиотек? Ну, может это и интересная задача, но у меня тут нет идей, как подступиться. Если так уж это интересует, можно начать с того, чтобы таки попробовать собрать проект Visual C++ WebRTC, сгенерированный GN, и посмотреть, соберется ли он. Если соберется, будет ли работать, если не соберется, то с какими ошибками. Так может что-нибудь выйдет, или по крайней мере в процессе познакомитесь с системами сборки.
    • Помечено в качестве ответа Liliya Muray 22 октября 2020 г. 6:23
    21 октября 2020 г. 19:02

Все ответы

  • Здравствуйте,

    Возможно это Вам тоже будет в помощь - Building from sources (Windows) - Building the MixedReality-WebRTC libraries


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

    21 октября 2020 г. 8:03
    Модератор
  • Здравствуйте,

    Возможно это Вам тоже будет в помощь - Building from sources (Windows) - Building the MixedReality-WebRTC libraries

    Там рассматривается получение dll из готового проекта MixedReality, чтоб можно было не подключать dll из nuget. Мне же нужно понять процесс создания проекта такой dll, как в таких проектах получают файлы lib или возможно ли создание таких проектов без промежуточного создания файлов lib. Понимаю вопросы примитивные и глупые, но какие есть на текущий момент.
    21 октября 2020 г. 8:50
  • Из всех трех проектов мне больше понравился "https://github.com/radioman/WebRtc.NET", но процесс сборки файлов lib остается за кадром. Поэтому и хотелось бы создать аналогичный проект с нуля и понимать все этапы создания такого проекта.
    21 октября 2020 г. 8:55
  • Секрет сборки lib-файлов тут, насколько я понял, в следующем. Проект WebRTC.NET имеет копии скриптов сборки WebRTC, в которых директивы rtc_library заменены на директивы rtc_static_library. Сравните оригинальный (https://chromium.googlesource.com/external/webrtc.git/+/refs/heads/master/api/BUILD.gn) и WebRTC.NET (https://github.com/radioman/WebRtc.NET/blob/master/WebRtc.NET/gn/webrtc/api/BUILD.gn). Поэтому вместо dll файлов получаются lib. 

    Как работает сама сборка через системы gn/ninja, описано в документации к репозиторию WebRTC: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/index.md  Создавать с нуля тут нечего и незачем, нужно лишь воспользоваться имеющимся инструментарием. И обновлять самостоятельно тоже ничего не надо, это должна команда gclient sync вот здесь: https://github.com/radioman/WebRtc.NET/blob/master/WebRtc.NET/cmd/syncWebRtc.bat

    21 октября 2020 г. 9:54
  • ... Создавать с нуля тут нечего и незачем ...

    Я полностью с вами согласна, но приложения "привет мир" постоянно создают))). Это мой проект "привет мир", в котором я хочу понять как правильно добавить файлы *.сc и *.h из папки полученной из проекта  https://chromium.googlesource.com/external/webrtc.git в проект "Пошаговое руководство. Создание и использование собственной библиотеки динамической компоновки (C++)" и правильно получить ссылку.
    21 октября 2020 г. 11:46
  • Проблема в том, что это совсем не то же самое, что "привет мир". Скорее это похоже на гибрид ужа с ежом, или что-то в этом роде. По ссылке - руководство, как создать проект DLL в обычном Visual C++/MSBuild. WebRTC же использует, как я уже сказал, хитровывернутую связку систем сборки от Google, GN + ninja. Одно с другим не соединяется, это вообще вещи разного порядка. Проект для MSBuild, конечно, можно сгенерировать в GN, просто он будет только для красоты, никто не гарантирует, что он будет собираться. Об этом явно написано в документации: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md#using-another-build-system

    Using Another Build System

    Other build systems are not supported (and may fail), such as Visual Studio on Windows or Xcode on OSX. GN supports a hybrid approach of using Ninja for building, but Visual Studio/Xcode for editing and driving compilation.

    To generate IDE project files, pass the --ide flag to the GN command. See the GN reference for more details on the supported IDEs.

    Сделать, чтобы проект от другой системы сборки вот так в лоб собирался в MSBuild, это совсем не уровня "привет мир". Разработчики WebRTC.NET придумали хороший обходной способ, через подключение статических библиотек в один большой проект. Что тут можно сделать лучше, я даже не представляю.

    21 октября 2020 г. 17:12
  • Проблема в том, что это совсем не то же самое, что "привет мир". Скорее это похоже на гибрид ужа с ежом, или что-то в этом роде.

    Разработчики WebRTC.NET придумали хороший обходной способ, через подключение статических библиотек в один большой проект. Что тут можно сделать лучше, я даже не представляю.

    Согласна, проект сложнее чем "привет мир". Но автор WebRTC.NET проекта смог получит метр колючей проволоки. Я хотела бы понять как это было сделано и повторить такой подвиг для саморазвития.
    • Изменено Liliya Muray 21 октября 2020 г. 18:37
    21 октября 2020 г. 18:34
  • Реализовать то же самое, но другим способом, без статических библиотек? Ну, может это и интересная задача, но у меня тут нет идей, как подступиться. Если так уж это интересует, можно начать с того, чтобы таки попробовать собрать проект Visual C++ WebRTC, сгенерированный GN, и посмотреть, соберется ли он. Если соберется, будет ли работать, если не соберется, то с какими ошибками. Так может что-нибудь выйдет, или по крайней мере в процессе познакомитесь с системами сборки.
    • Помечено в качестве ответа Liliya Muray 22 октября 2020 г. 6:23
    21 октября 2020 г. 19:02
  • Реализовать то же самое, но другим способом, без статических библиотек? Ну, может это и интересная задача, но у меня тут нет идей, как подступиться. Если так уж это интересует, можно начать с того, чтобы таки попробовать собрать проект Visual C++ WebRTC, сгенерированный GN, и посмотреть, соберется ли он. Если соберется, будет ли работать, если не соберется, то с какими ошибками. Так может что-нибудь выйдет, или по крайней мере в процессе познакомитесь с системами сборки.

    Если я правильно вас поняла, то нужно пойти через получения исходника через depot_tools, потом получить проекты для студии с помощью батника для каждого типа сборки, получить файлы lib с помощью студии? С помощью другого батника из исходников выковырять заголовочные файлы h и воспользоваться уже имеющимся скелетом проекта для своего проекта. Таких задач мне пока для саморазвития будет вполне достаточно.

    Спасибо за направление копки, буду копать.

    22 октября 2020 г. 6:23