windows下拷贝webrtc库文件和头文件

  第一章我们将webrtc成功编译了。

 

  现在我们将库文件和头文件拿出来使用。

 

  如果从示例代码来看的话,我们所需要的并非全部

  

  但保险起见,我们还是将所有头文件都拷贝出来吧。

  

  首先我使用c#写了一个递归拷贝文件的脚本(大家可以用python等自己编写,因为我发现使用cmd或powershell不太方便)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 
 5 namespace ConsoleApp6
 6 {
 7     class Program
 8     {
 9         static void Main(string[] args)
10         {
11             var odir = args[0];
12             var ndir = args[1];
13             var filter = args[2];
14             var files = new List<string>();
15             ListFileRecurse(odir, filter.Split(','), files);
16             foreach (var file in files)
17             {
18                 string relativePath = file.Substring(odir.Length + 1);
19                 string newPath = Path.Combine(ndir, relativePath);
20                 string newDir = Path.GetDirectoryName(newPath);
21                 if (!Directory.Exists(newDir))
22                 {
23                     Directory.CreateDirectory(newDir);
24                 }
25                 File.Copy(file, newPath);
26                 Console.WriteLine($"{file} -> {newPath}");
27             }
28         }
29 
30         private static void ListFileRecurse(string dir, string[] filter, List<string> paths)
31         {
32             foreach (var _filter in filter)
33             {
34                 if (string.IsNullOrWhiteSpace(_filter)) continue;
35                 paths.AddRange(Directory.GetFiles(dir, _filter));
36             }
37             foreach (var _dir in Directory.GetDirectories(dir))
38             {
39                 ListFileRecurse(_dir, filter, paths);
40             }
41         }
42     }
43 }

 

  打开vs命令提示工具

  

  执行如下命令

 1 set WORKSPACE=E:\webrtc
 2 cd /d %WORKSPACE%
 3 csc /target:exe CopyFile.cs
 4 CopyFile %WORKSPACE%\webrtc-checkout\src %WORKSPACE%\dist\include1 *.h,*.hh,*.inc
 5 rd /s /q %WORKSPACE%\dist\include1\buildtools\third_party\libc++\trunk\include
 6 mkdir %WORKSPACE%\dist\include1\buildtools\third_party\libc++\trunk\include
 7 xcopy %WORKSPACE%\webrtc-checkout\src\buildtools\third_party\libc++\trunk\include %WORKSPACE%\dist\include1\buildtools\third_party\libc++\trunk\include /S /E /Y
 8 copy %WORKSPACE%\webrtc-checkout\src\buildtools\third_party\libc++\__config_site %WORKSPACE%\dist\include1\buildtools\third_party\libc++\trunk\include
 9 CopyFile %WORKSPACE%\webrtc-checkout\src\out\Default\gen %WORKSPACE%\dist\include *.h,*.hh,*.inc
10 CopyFile %WORKSPACE%\webrtc-checkout\src\out\Default\obj %WORKSPACE%\dist\lib_temp *.obj,*.o
11 cd /d %WORKSPACE%\dist\lib_temp
12 rd /s /q examples
13 powershell -Command "(Get-ChildItem -Filter *.obj -Recurse).FullName.Substring("""%cd%""".Length + 1) > objs.txt"
14 powershell -Command "(Get-ChildItem -Filter *.o -Recurse).FullName.Substring("""%cd%""".Length + 1) >> objs.txt"
15 lib /OUT:webrtc.lib @objs.txt
16 cd /d %WORKSPACE%\dist
17 mkdir lib
18 move lib_temp\webrtc.lib lib
19 rd /s /q lib_temp

 

  (CopyFile.cs大家先保存到目标位置,可能需要安装.NET环境)

  最后得到的就是完整的头文件和静态库了,这里面几乎包含了你能用到所有三方库,包括openssl/jsoncpp等。

 

 

 

 

  (注意:如果你要用这个lib,最好在gn gen时使用--args="。。。 rtc_build_tools=false rtc_include_tests=false  。。。"来减少内容和符号冲突)

  最后修改时间 2022-09-21 20:21:13

 

  我把自己编译打包的上传了,大家可以下载使用。如果下载不便,可以留下邮箱

  m105x64_vs2022

  m105x86_vs2022

  最后修改时间 2022-10-01 22:46:18

posted @ 2022-08-15 19:51  云中双月  阅读(773)  评论(0)    收藏  举报