Как правильно скомпилировать WebRT C с Visual Studio в отладке? - PullRequest
1 голос
/ 31 января 2020

Я пытаюсь скомпилировать WebRT C, но поскольку мы используем несколько библиотек, некоторые из которых являются закрытым исходным кодом и находятся вне нашего контроля, то как его компилировать, довольно чувствительно для соответствия. Мне уже приходилось редактировать скрипт build/config/win/BUILD.gn, чтобы использовать флаги сборки /MDd и /MD вместо /MTd и /MT соответственно, так как мы используем многопоточную среду выполнения DLL. Для компоновки мы запускаем

gn gen out/Debug --args="is_debug=true is_clang=false use_lld=false visual_studio_version=2019"
ninja -C out/Debug

Однако при связывании с webrt c .lib происходит сбой с множественными ошибками, ссылающимися на несоответствие между _ITERATOR_DEBUG_LEVEL. Я много видел эту ошибку, она возникает при связывании библиотеки, собранной с релиза (_ITERATOR_DEBUG_LEVEL=2), с исполняемым файлом отладки (_ITERATOR_DEBUG_LEVEL=0). Однако это явно не то, как я это скомпилировал. Я попытался добавить /DEBUG (что подразумевается под /MDd, насколько я знаю), но он создает идентичную библиотеку с той же проблемой. Я подтвердил проверку сгенерированных скриптов .ninja, что эти аргументы находятся в cflags.

Есть ли способ заставить ниндзя правильно наблюдать флаги отладки?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

У меня была такая же проблема. Хотя WebRT C - мощная библиотека, она выглядит ужасно для нативной разработки. Ни хорошей документации, ни примеров, особенно для использования сторонних источников Google. Пожалуйста, попробуйте этот аргумент, который мне помог: enable_iterator_debugging=true

0 голосов
/ 31 января 2020

Я сам не имею дело с libwebrt c, но я слышал, что в долгосрочной перспективе у вас может быть лучший опыт извлечения всех файлов и использования вашей собственной системы сборки. Orchid сделал это, но я сам на это не смотрел.

Существуют другие реализации C / C ++ WebRT C, если вы используете только DataChannels, которые также могут быть полезны!

...