首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebRTC也不为Windows构建

WebRTC也不为Windows构建
EN

Stack Overflow用户
提问于 2017-09-03 13:38:04
回答 2查看 1K关注 0票数 0

就像在这个问题WebRTC not building for Windows中一样,我不能用VS 2015在Windows764位上构建WebRTC,但问题是不同的。fetchgclient同步运行良好,没有出错。但是,当我运行gen /WebRTC时,我会得到以下错误

代码语言:javascript
复制
ERROR at //third_party/protobuf/proto_library.gni:229:15: File is not inside out
put directory.
    outputs = get_path_info(protogens, "abspath")
              ^---------------------------------
The given file should be in the output directory. Normally you would specify
"$target_out_dir/foo" or "$target_gen_dir/foo". I interpreted this as
"//out/Default/gen/webrtc/rtc_tools/event_log_visualizer/chart.pb.h".
See //webrtc/rtc_tools/BUILD.gn:184:3: whence it was called.
  proto_library("chart_proto") {
  ^-----------------------------
See //BUILD.gn:16:5: which caused the file to be included.
"//webrtc/rtc_tools",
^-------------------
Traceback (most recent call last):
  File "D:/temp/webrtc-checkout/src/build/vs_toolchain.py", line 459, in <module>
    sys.exit(main())
  File "D:/temp/webrtc-checkout/src/build/vs_toolchain.py", line 455, in main
    return commands[sys.argv[1]](*sys.argv[2:])
  File "D:/temp/webrtc-checkout/src/build/vs_toolchain.py", line 431, in GetTool
chainDir
    win_sdk_dir = SetEnvironmentAndGetSDKDir()
  File "D:/temp/webrtc-checkout/src/build/vs_toolchain.py", line 424, in SetEnvi
ronmentAndGetSDKDir
    return NormalizePath(os.environ['WINDOWSSDKDIR'])
  File "D:\temp\depot_tools\win_tools-2_7_6_bin\python\bin\lib\os.py", line 423,
 in __getitem__
    return self.data[key.upper()]
KeyError: 'WINDOWSSDKDIR'

我试图添加上述问题中提到的变量,但没有帮助。任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-09-10 19:17:09

您需要设置LIB并将其包含在环境变量中(windows )。并设置正确版本的python的路径(我认为也是2.7.6)。

因此,您的环境变量应该是:

代码语言:javascript
复制
LIB=C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\ucrt\x64;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\x64

INCLUDE=C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\shared;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um;
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\winrt

PATH=C:\src\depot_tools\python276_bin\

如果它起作用,请标记

票数 0
EN

Stack Overflow用户

发布于 2020-04-30 07:26:03

利布韦布

我正在使用来自https://github.com/cloudwebrtc/libwebrtc-build的libwebrtc,该编译被包装在一个CMake自定义调用中,我试图修改LIB/INCLUDE,但是您可能会引用Visual变量(命令行没有这些变量,或者它不能像我预期的那样工作)。

我现在的保守解决方案是在libwebrtc编译之前打印此消息:

代码语言:javascript
复制
if(NOT EXISTS "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt")
message("============================== C:/Program Files (x86)/Windows Kits/10/Redist/ucrt missing ==========================")
message("C:/Program Files (x86)/Windows Kits/10/Redist/ucrt can not be found")
message(" normally it contains files like /DLLs/x64/ucrtbase.dll and is required for libwebrtc to build")
message(FATAL_ERROR "Please copy the directory C:/Program Files (x86)/Windows Kits/10/Redist/10.0.18362.0/ucrt into C:/Program Files (x86)/Windows Kits/10/Redist/")
endif(NOT EXISTS "C:/Program Files (x86)/Windows Kits/10/Redist/ucrt")

另一种方法是将toolchain.py#L212修补到(伪代码):

ucrt_dll_dirs = os.path.join("C:/Program (x86)/Windows Kits/10/Redist/10.0.18362.0/",‘DLL’,target_cpu)

但是,由于该python代码是从libwebrtc签出的,并且可能定期重写,所以我将使用手动解决方案。

(文件的手动副本)

/Y /E /I "c:\Program (x86)\Windows \10\Redist\10.0.18362.0\ucrt "c:\Program (x86)\Windows \10\Redist\

交替讨论

https://bugs.chromium.org/p/webrtc/issues/detail?id=7677#c24中提出的所有解决方案对我来说也都失败了。

祝愿

我只希望python能够使用另一个环境变量,在那里我们可以传递要查看的目录。或者更好的是,为什么微软一开始就创建了如此糟糕的基础设施-- UNIX上的-> --可以使用“pkg-config”这个概念来进行自定义库检测。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46023981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档