-
Notifications
You must be signed in to change notification settings - Fork 131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issues Compiling on Windows 10 #46
Comments
Dear shadoxx,
|
I opened a new bug to try to make it easier on our side. It will not alleviate the pain of recompiling libwebrtc though, for which we do not claim any responsibility. #47 |
Sorry @agouaillard-cosmo, I was in a state of sleep deprivation and frustration when I made this issue. I have removed my unkind posts and accusations as they don't reflect my generally cheery demeanor. Thank you for the links and updated README. I will be attempting to compile libwebrtc from source this week. I agree that this is black magic, and my initial frustration stemmed from dead links and bad autocompiler scripts floating around the web. This whole experience has driven me to create my own build process. Again, thank you for the work that you do. |
No problem, We've all been seriously frustrated by libwebrtc build system. And we still are, as even when it works it is really, really Slow ...... First webrtc compilation is a two days effort, time to get the environment right, and subsequent compilations can take 8 hours, including several hours to get teh source code. With different optimisations, we are down to an hour, but it s still not fast enough to do it on a commit basis ... Frustrating. https://my.cdash.org/index.php?project=libwebRTC&date=2018-09-26 I strongly recommend that you ask your questions about libwebrtc compilations on the webrtc-discuss mailing list. I also read that list, and will answer there if you're stuck, but it will benefit the bigger community. Any question specifically about OBS-studio-webrtc should be asked here though. |
OK, I have compiled libwebrtc from source (thanks for the links!). I have the EDIT: I've found the relevant options in the |
yeah ...... When you get use to the simplicity of our installer, it's hard to get back. Everything is done on the installer side so that you can just use "find_package(libwebrtc)" in your cmake code and it just works(TM). OK, i'm doing that from memory, but that should get you there. Beware, pain ahead. Make sure you are using branch_head 65.
good luck. |
Didn't know about the examples producing the I've been able to mostly reproduce what I believe is in the installers you provide, including the cmake and include directories. I won't release these as a public bundles, but I did find the CMake files you've written other places on the web from talks and demos you've given. They have been immensely helpful! After spending a week on this already I can see why you have kept your build process proprietary. It's a lot of work. |
The work on those scripts has started in 2012 .... I wrote some blog posts about it around 2015: it's a race game, we need to be able to shield ourselves from google non-backward compatible 200 commits a week ..... We're not releasing the bundle because it s a lot of work, we're not releasing the bundle because they are not stable enough yet. We need them to be stable enough, so that if we release them to the public, the amount of maintenance will be tolerable. You only work on windows, but we support win, linux, mac, android, iOS, all the way since revision 62 up to 69. We not only build libwebrtc, but we import all the google unit tests for it, run them, check that they pass, and add some tests on our own to make sure it works. Basically the projects that depend on libwebrtc should be able to use the pre-compiled libs without a doubt. We also want people to be able to upgrade their libwebrtc version without too much trouble, which is absolutely not the case today. So we still have some work to do. think about a world without depot_tools, without hours-long fetch and sync, without GN, ninja, ...... where you find_package( libwebrtc 65 ) and it just works. Webrtc finally made easy. |
That's a lot of commits.
That makes loads more sense. Thanks for the clarification.
Fair enough, as this topic covers Windows, but my day job involves design and implementation of build/delivery pipelines on Linux. After I have accomplished getting the Windows side of things handled, I will be duplicating my work on Linux. I will be targeting Fedora and Ubuntu.
This is actually what got me interested in the whole ordeal. I believe webrtc enables the next generation of interactivity for humanity as a whole, and I've put together the demos and SEEN what the future can be. I've explored the tech and I'm blown away for the potential that it adds to existing stacks. As someone I know put it, it's like the whole Internet gets an upgrade! ...This may have gone a bit off topic. In any case, I was able to successfully reproduce and link against |
Hello and thank you for all the great input! This conversation actually has helped me a lot so far.
So, I went to the project settings of those 5 projects, added WEBRTC_WIN as preprocessor definition and rebuild the solution. Unfortunately, they still fail. This is where I currently stand. I will continue to figure out what the problem is. Any help is welcome. |
What's the full error log ? |
This: output-log.txt |
grep error ~/Downloads/output-log.txt 8>d:\videostreaming\obs-studio-webrtc.git\tags\2.4\plugins\websocket-client\websocketpp\common\asio.hpp(46): fatal error C1083: Cannot open include file: 'asio/version.hpp': No such file or directory Are you sure you did a recursive clone, it looks like some submodule are not initialised. 8>d:\videostreaming\obs-studio-webrtc.git\tags\2.4\plugins\websocket-client\websocketclient.cpp(2): fatal error C1083: Cannot open include file: 'openssl/opensslv.h': No such file or directory You need an openssl install. Even better, build libwebrtc with openssl support, and it will be provided for free. Otherwise, cmake ALWAYS come with the FindOpenSLL.cmake script, so you can add: 23>d:\chromium-webrtc\src\rtc_base\timeutils.h(133): error C2614: 'rtc::IntervalRange': illegal member initialization: 'min_' is not a base or member I think you need to define NOMINMAX 23>d:\videostreaming\obs-studio-webrtc.git\tags\2.4\plugins\obs-outputs\webrtcstream.cpp(5): fatal error C1083: Cannot open include file: 'libyuv.h': No such file or directory you need to add the path to libyuv.h to your include paths. It should be something like that: 25>d:\videostreaming\obs-studio-webrtc.git\tags\2.4\ui\window-basic-status-bar.cpp(26): error C2065: 'WEBRTC_MAJOR_VERSION': undeclared identifier Just define it to whatever version you use, it does not really matter anyway. |
Thanks for your reply! Oh my... checking out not recursively gets me once again... thanks! I made a new clone and made sure to use I am facing several |
in axel scripts, it s hardcoded on line 87 to 90 of this file note that you can find some of your missing definitions on line 91 of the same file. at this stage, you should realise that this is a never ending laundry list, and this is unmaintainable as is. |
by the way, if you installed depot_tools correctly, you should have python from depot_tool in the path. |
Yeah... it is really messy and the frustration is definitely there... but I don't want to give up on this just yet! So... the lines 87 to 90 in this script... how am I supposed to use them? Is there any file I can copy that to? Like CMakeList.txt in obs-outputs? Or do I have to start from Axel's repository and build the libwebrtc entirely with cmake instead of ninja? (sorry, for this naive question, but this whole cmake and ninja stuff is quite new for me) |
Oooook, so adding those commands to the cmakelists of obs-outputs and websocketclient actually did something... now I got new error messages... EDIT: |
Chris,
with all due respect, You need to raise a little bit your level on C++ and
Cmake. You cannot expect to be able to make this thing work nor to maintain
it if you re not able to address basic C++ compilation error like missing
symbols. Your remaining problems are related to that NOMINMAX definition I
mentioned earlier, missing openssl symbols, which I also mentioned earlier
and some problems with your webrtc source code that I do not have access
to. Are you sure you are using the branch_head 65 of the webrtc code?
For our interns or fresh graduates, we ask them to read those books before
they can ask us any question internally. I feel it would be unfair to them
to give you a free pass:
- The C++ Programming language (4th edition) by B. Stroupstrup.
- Design Patterns: Elements of Reusable Object-Oriented Software.
- Professional CMake, https://crascit.com/professional-cmake/
Then, for those working on webrtc, those are also mandatory reading:
- RTP: Audio and Video for the Internet, by collin Perkins
- SIP: Understanding the Session Initiation Protocol, by A Johnston
- WebRTC APIs and RTCWEB protocols, by A Jhonston and D. Burnett.
http://webrtcbook.com
That's a few hundred USD of books to save you weeks/months of pain. I see
it as a good deal.
If you don't intend to modify and maintain your fork, pre-compiled binaries
are provided: https://github.com/CoSMoSoftware/OBS-studio-webrtc/releases
…On Thu, Oct 18, 2018 at 9:27 PM ChrisVifzack ***@***.***> wrote:
Oooook, so adding those commands to the cmakelists of obs-outputs and
websocketclient actually did something...
Now I got new error messages... could you give me some advice once more?
Here is the output: output-log-2.txt
<https://github.com/CoSMoSoftware/OBS-studio-webrtc/files/2492060/output-log-2.txt>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#46 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAT1npSAMzXd3coodXgDM58FI-0W-SbOks5umIGpgaJpZM4XC-Nq>
.
--
Alex. Gouaillard, PhD, PhD, MBA
------------------------------------------------------------------------------------
President - CoSMo Software Consulting, Singapore
------------------------------------------------------------------------------------
sg.linkedin.com/agouaillard
-
|
Yeah, ok. I guess there is no way around this. Thank you for the references and your time. |
I'm using Windows 10 with Visual Studio Community 2017, attempting to compile OBS w/webrtc and it doesn't seem to be working.
What's the current recommended way of compiling and linking the external libwebrtc library on Windows 10? Thank you!
The text was updated successfully, but these errors were encountered: