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
我把自己编译打包的上传了,大家可以下载使用。如果下载不便,可以留下邮箱
最后修改时间 2022-10-01 22:46:18
认真你就输了,一直认真你就赢了!

浙公网安备 33010602011771号