“ D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot...

تم الإنشاء في: ١٦ مارس ٢٠٢٥

تمت الإجابة باستخدام O1 بواسطة Chat01

سؤال

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>gclient
Updating depot_tools...
Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:b1f414539ac10cc67a0250890a38712cc06cf102...
[P35736 21:31:15.102 client.go:312 W] RPC failed transiently (retry in 1s): rpc error: code = Internal desc = prpc: sending request: Post "https://chrome-infra-packages.appspot.com/prpc/cipd.Repository/ResolveVersion": dial tcp 205.186.152.122:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository", "sleepTime":"1s"}
[P35736 21:31:37.170 client.go:312 W] RPC failed transiently (retry in 2s): rpc error: code = Internal desc = prpc: sending request: Post "https://chrome-infra-packages.appspot.com/prpc/cipd.Repository/ResolveVersion": dial tcp 199.59.148.246:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository", "sleepTime":"2s"}
[P35736 21:32:00.238 client.go:312 W] RPC failed transiently (retry in 4s): rpc error: code = Internal desc = prpc: sending request: Post "https://chrome-infra-packages.appspot.com/prpc/cipd.Repository/ResolveVersion": dial tcp 199.59.148.246:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository", "sleepTime":"4s"}
[P35736 21:32:25.286 client.go:312 W] RPC failed transiently (retry in 8s): rpc error: code = Internal desc = prpc: sending request: Post "https://chrome-infra-packages.appspot.com/prpc/cipd.Repository/ResolveVersion": dial tcp 199.59.148.246:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. {"host":"chrome-infra-packages.appspot.com", "method":"ResolveVersion", "service":"cipd.Repository", "sleepTime":"8s"}
Error: prpc: call canceled: context canceled.
终止批处理操作吗(Y/N)? Y

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>git config --global http.proxy 127.0.0.1:7890

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>git config --global https.proxy 127.0.0.1:7890

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>gclient
Updating depot_tools...
CIPD client self-update failed, trying to bootstrap it from scratch...
Downloading CIPD client for windows-amd64 from https://chrome-infra-packages.appspot.com/client?platform=windows-amd64&version=git_revision:b1f414539ac10cc67a0250890a38712cc06cf102...
Error: prpc: call canceled: context canceled.
终止批处理操作吗(Y/N)? T
终止批处理操作吗(Y/N)? Y

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>set https_proxy=127.0.0.1:7890

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>set http_proxy=127.0.0.1:7890

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>mkdir webrtc

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>cd webrtc

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>fetch --nohooks webrtc
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Running: 'C:\Users\11197\AppData\Local\vpython-root.0\store\python_venv-cuo4rssq0miv6umrrso1os3i24\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py' root
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Running: 'C:\Users\11197\AppData\Local\vpython-root.0\store\python_venv-cuo4rssq0miv6umrrso1os3i24\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py' config --spec 'solutions = [
{
"name": "src",
"url": "https://webrtc.googlesource.com/src.git",
"deps_file": "DEPS",
"managed": False,
"custom_deps": {},
},
]
'
Running: 'C:\Users\11197\AppData\Local\vpython-root.0\store\python_venv-cuo4rssq0miv6umrrso1os3i24\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py' sync --nohooks --with_branch_heads

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://webrtc.googlesource.com/src.git D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc_gclient_src_52i5clgx' in 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc'
Cloning into 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc_gclient_src_52i5clgx'...
remote: Sending approximately 410.23 MiB ...
remote: Total 469636 (delta 340523), reused 469636 (delta 340523)
Receiving objects: 100% (469636/469636), 410.23 MiB | 10.41 MiB/s, done.
Resolving deltas: 100% (340523/340523), done.
3>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src/buildtools" "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_buildtools_v4qple5u"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc failed; will retry after a short nap...
Syncing projects: 9% ( 5/51) src/buildtools/win-format:565cab9c66d61360c27c7d4df5defe1a78ab56d3
[0:02:56] Still working on:
[0:02:56] src/build
[0:02:56] src/testing
[0:02:56] src/third_party
[0:02:56] src/tools
2>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src/build" "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_build_9zel8a6j"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc failed; will retry after a short nap...
4>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src/testing" "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_testing_1b9b4qtc"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc failed; will retry after a short nap...

[0:03:06] Still working on:
[0:03:06] src/build
[0:03:06] src/testing
[0:03:06] src/third_party
[0:03:06] src/tools

[0:03:16] Still working on:
[0:03:16] src/build
[0:03:16] src/testing
[0:03:16] src/third_party
[0:03:16] src/tools

[0:03:26] Still working on:
[0:03:26] src/build
[0:03:26] src/testing
[0:03:26] src/third_party
[0:03:26] src/tools

[0:03:36] Still working on:
[0:03:36] src/build
[0:03:36] src/testing
[0:03:36] src/third_party
[0:03:36] src/tools

[0:03:46] Still working on:
[0:03:46] src/build
[0:03:46] src/testing
[0:03:46] src/third_party
[0:03:46] src/tools

[0:03:56] Still working on:
[0:03:56] src/build
[0:03:56] src/testing
[0:03:56] src/third_party
[0:03:56] src/tools
6>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src/tools" "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc failed; will retry after a short nap...

[0:04:06] Still working on:
[0:04:06] src/build
[0:04:06] src/testing
[0:04:06] src/third_party
[0:04:06] src/tools

[0:04:07] Still working on:
[0:04:07] src/build
[0:04:07] src/testing
[0:04:07] src/third_party
[0:04:07] src/tools
2>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "fetch" "origin" "--no-tags"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\build failed; will retry after a short nap...
6>WARNING: subprocess '"git" "-c" "core.deltaBaseCacheLimit=2g" "clone" "--no-checkout" "--progress" "https://chromium.googlesource.com/chromium/src/tools" "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp"' in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc failed; will retry after a short nap...
Syncing projects: 15% ( 8/51) src/tools
[0:06:33] Still working on:
[0:06:33] src/third_party

[0:06:43] Still working on:
[0:06:43] src/third_party

[0:06:53] Still working on:
[0:06:53] src/third_party

[0:07:03] Still working on:
[0:07:03] src/third_party

[0:07:13] Still working on:
[0:07:13] src/third_party

[0:07:23] Still working on:
[0:07:23] src/third_party

[0:07:33] Still working on:
[0:07:33] src/third_party

[0:07:43] Still working on:
[0:07:43] src/third_party

[0:07:53] Still working on:
[0:07:53] src/third_party

[0:08:03] Still working on:
[0:08:03] src/third_party

[0:08:13] Still working on:
[0:08:13] src/third_party

[0:08:23] Still working on:
[0:08:23] src/third_party

[0:08:33] Still working on:
[0:08:33] src/third_party

[0:08:43] Still working on:
[0:08:43] src/third_party

[0:08:53] Still working on:
[0:08:53] src/third_party

[0:09:03] Still working on:
[0:09:03] src/third_party

[0:09:13] Still working on:
[0:09:13] src/third_party

[0:09:23] Still working on:
[0:09:23] src/third_party

[0:09:33] Still working on:
[0:09:33] src/third_party

[0:09:43] Still working on:
[0:09:43] src/third_party

[0:09:53] Still working on:
[0:09:53] src/third_party

[0:10:03] Still working on:
[0:10:03] src/third_party

[0:10:13] Still working on:
[0:10:13] src/third_party

[0:10:23] Still working on:
[0:10:23] src/third_party

[0:10:33] Still working on:
[0:10:33] src/third_party

[0:10:43] Still working on:
[0:10:43] src/third_party

[0:10:53] Still working on:
[0:10:53] src/third_party

[0:11:03] Still working on:
[0:11:03] src/third_party

[0:11:13] Still working on:
[0:11:13] src/third_party

[0:11:23] Still working on:
[0:11:23] src/third_party

[0:11:33] Still working on:
[0:11:33] src/third_party

[0:11:43] Still working on:
[0:11:43] src/third_party

[0:11:53] Still working on:
[0:11:53] src/third_party

[0:12:03] Still working on:
[0:12:03] src/third_party

[0:12:13] Still working on:
[0:12:13] src/third_party

[0:12:23] Still working on:
[0:12:23] src/third_party

[0:12:33] Still working on:
[0:12:33] src/third_party

[0:12:43] Still working on:
[0:12:43] src/third_party

[0:12:53] Still working on:
[0:12:53] src/third_party

[0:13:03] Still working on:
[0:13:03] src/third_party

[0:13:13] Still working on:
[0:13:13] src/third_party

[0:13:23] Still working on:
[0:13:23] src/third_party

[0:13:33] Still working on:
[0:13:33] src/third_party

[0:13:43] Still working on:
[0:13:43] src/third_party

[0:13:53] Still working on:
[0:13:53] src/third_party

[0:14:03] Still working on:
[0:14:03] src/third_party

[0:14:13] Still working on:
[0:14:13] src/third_party

[0:14:23] Still working on:
[0:14:23] src/third_party

[0:14:33] Still working on:
[0:14:33] src/third_party

[0:14:43] Still working on:
[0:14:43] src/third_party

[0:14:53] Still working on:
[0:14:53] src/third_party

[0:15:03] Still working on:
[0:15:03] src/third_party

[0:15:13] Still working on:
[0:15:13] src/third_party

[0:15:23] Still working on:
[0:15:23] src/third_party

[0:15:33] Still working on:
[0:15:33] src/third_party

[0:15:43] Still working on:
[0:15:43] src/third_party

[0:15:51] Still working on:
[0:15:51] src/third_party
Syncing projects: 17% ( 9/51) src/third_party
src/tools (ERROR)

[0:00:58] Started.
[0:00:58]

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src/tools D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp' in 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc'

[0:00:58] Cloning into 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp'...
[0:00:59] remote: Sending approximately 1.47 GiB ...
[0:00:59] remote: Counting objects: 1
[0:00:59] remote: Counting objects: 275, done
[0:00:59] remote: Finding sources: 1% (2/275)
[0:00:59] remote: Finding sources: 10% (27/275)
[0:00:59] remote: Finding sources: 100% (274/275)
[0:00:59] Receiving objects: 0% (1/725797)
[0:01:00] Receiving objects: 2% (14516/725797), 8.56 MiB | 8.04 MiB/s
[0:01:01] Receiving objects: 3% (21774/725797), 13.19 MiB | 6.28 MiB/s
[0:01:03] Receiving objects: 4% (32569/725797), 19.50 MiB | 5.26 MiB/s
[0:01:04] Receiving objects: 5% (36290/725797), 21.93 MiB | 3.77 MiB/s
[0:01:06] Receiving objects: 5% (37951/725797), 23.25 MiB | 2.09 MiB/s
[0:01:08] Receiving objects: 5% (40408/725797), 24.81 MiB | 915.00 KiB/s
[0:01:09] Receiving objects: 5% (42151/725797), 25.31 MiB | 845.00 KiB/s
[0:01:10] Receiving objects: 5% (43438/725797), 26.37 MiB | 820.00 KiB/s
[0:01:11] Receiving objects: 6% (44398/725797), 27.00 MiB | 770.00 KiB/s
[0:01:13] Receiving objects: 6% (45244/725797), 27.62 MiB | 535.00 KiB/s
[0:01:14] Receiving objects: 6% (45465/725797), 27.68 MiB | 446.00 KiB/s
[0:01:16] Receiving objects: 6% (45677/725797), 27.87 MiB | 231.00 KiB/s
[0:01:17] Receiving objects: 6% (45891/725797), 27.99 MiB | 152.00 KiB/s
[0:01:19] Receiving objects: 6% (45995/725797), 28.06 MiB | 116.00 KiB/s
[0:01:20] Receiving objects: 6% (46206/725797), 28.18 MiB | 100.00 KiB/s
[0:01:21] Receiving objects: 6% (46417/725797), 28.31 MiB | 85.00 KiB/s
[0:01:23] Receiving objects: 6% (46735/725797), 28.49 MiB | 87.00 KiB/s
[0:01:24] Receiving objects: 6% (46948/725797), 28.62 MiB | 94.00 KiB/s
[0:01:25] Receiving objects: 6% (47157/725797), 28.68 MiB | 93.00 KiB/s
[0:01:27] Receiving objects: 6% (47579/725797), 28.99 MiB | 120.00 KiB/s
[0:01:28] Receiving objects: 6% (47794/725797), 29.12 MiB | 123.00 KiB/s
[0:01:30] Receiving objects: 6% (48638/725797), 29.62 MiB | 164.00 KiB/s
[0:01:32] Receiving objects: 6% (49388/725797), 30.06 MiB | 190.00 KiB/s
[0:01:34] Receiving objects: 6% (49823/725797), 30.31 MiB | 193.00 KiB/s
[0:01:35] Receiving objects: 6% (50035/725797), 30.43 MiB | 186.00 KiB/s
[0:01:37] Receiving objects: 6% (50248/725797), 30.56 MiB | 141.00 KiB/s
[0:01:38] Receiving objects: 6% (50461/725797), 30.68 MiB | 113.00 KiB/s
[0:01:40] Receiving objects: 6% (50677/725797), 30.81 MiB | 90.00 KiB/s
[0:01:41] Receiving objects: 6% (50789/725797), 30.87 MiB | 81.00 KiB/s
[0:01:42] Receiving objects: 7% (50995/725797), 30.99 MiB | 85.00 KiB/s
[0:01:43] Receiving objects: 7% (51204/725797), 31.12 MiB | 89.00 KiB/s
[0:01:45] Receiving objects: 7% (52616/725797), 31.87 MiB | 196.00 KiB/s
[0:01:46] Receiving objects: 7% (53793/725797), 32.62 MiB | 356.00 KiB/s
[0:01:48] Receiving objects: 7% (54926/725797), 33.18 MiB | 429.00 KiB/s
[0:01:50] Receiving objects: 7% (55587/725797), 33.62 MiB | 376.00 KiB/s
[0:01:51] Receiving objects: 7% (55906/725797), 33.74 MiB | 324.00 KiB/s
[0:01:52] Receiving objects: 7% (56221/725797), 33.99 MiB | 229.00 KiB/s
[0:01:54] Receiving objects: 7% (56657/725797), 34.18 MiB | 177.00 KiB/s
[0:01:55] Receiving objects: 7% (57314/725797), 34.56 MiB | 198.00 KiB/s
[0:01:57] Receiving objects: 8% (58064/725797), 34.99 MiB | 223.00 KiB/s
[0:01:58] Receiving objects: 8% (58761/725797), 35.31 MiB | 246.00 KiB/s
[0:01:59] Receiving objects: 8% (59218/725797), 35.68 MiB | 285.00 KiB/s
[0:02:01] Receiving objects: 8% (59447/725797), 35.80 MiB | 219.00 KiB/s
[0:02:02] Receiving objects: 8% (59676/725797), 35.93 MiB | 180.00 KiB/s
[0:02:03] Receiving objects: 8% (59906/725797), 36.05 MiB | 139.00 KiB/s
[0:02:05] Receiving objects: 8% (60233/725797), 36.24 MiB | 89.00 KiB/s
[0:02:07] Receiving objects: 8% (60583/725797), 36.43 MiB | 100.00 KiB/s
[0:02:09] Receiving objects: 8% (62616/725797), 37.37 MiB | 239.00 KiB/s
[0:02:10] Receiving objects: 8% (63410/725797), 37.93 MiB | 329.00 KiB/s
[0:02:12] Receiving objects: 9% (65322/725797), 38.80 MiB | 513.00 KiB/s
[0:02:13] Receiving objects: 9% (66408/725797), 39.62 MiB | 542.00 KiB/s
[0:02:15] Receiving objects: 9% (67568/725797), 40.24 MiB | 447.00 KiB/s
[0:02:16] Receiving objects: 9% (67907/725797), 40.43 MiB | 406.00 KiB/s
[0:02:17] Receiving objects: 9% (68140/725797), 40.49 MiB | 316.00 KiB/s
[0:02:19] Receiving objects: 9% (68362/725797), 40.68 MiB | 212.00 KiB/s
[0:02:20] Receiving objects: 9% (68588/725797), 40.80 MiB | 179.00 KiB/s
[0:02:21] Receiving objects: 9% (68822/725797), 40.93 MiB | 130.00 KiB/s
[0:02:23] Receiving objects: 9% (69398/725797), 41.24 MiB | 118.00 KiB/s
[0:02:25] Receiving objects: 9% (69628/725797), 41.37 MiB | 109.00 KiB/s
[0:02:27] Receiving objects: 9% (69735/725797), 41.43 MiB | 96.00 KiB/s
[0:02:28] Receiving objects: 9% (69857/725797), 41.49 MiB | 93.00 KiB/s
[0:03:59] error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0
[0:03:59] error: 39239 bytes of body are still expected
[0:03:59] fetch-pack: unexpected disconnect while reading sideband packet
[0:03:59] fatal: early EOF
[0:03:59] fatal: fetch-pack: invalid index-pack output
[0:04:01]
________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src/tools D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp' in 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc' attempt 2 / 2

[0:04:01] Cloning into 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src_gclient_tools_232iudyp'...
[0:04:02] remote: Sending approximately 1.47 GiB ...
[0:04:02] remote: Counting objects: 1
[0:04:02] remote: Counting objects: 275, done
[0:04:02] remote: Finding sources: 1% (2/275)
[0:04:02] remote: Finding sources: 10% (27/275)
[0:04:02] remote: Finding sources: 100% (274/275)
[0:04:02] Receiving objects: 0% (1/725797)
[0:04:03] Receiving objects: 0% (236/725797), 131.97 KiB | 233.00 KiB/s
[0:04:04] Receiving objects: 0% (544/725797), 1.13 MiB | 557.00 KiB/s
[0:04:05] Receiving objects: 0% (1392/725797), 1.44 MiB | 563.00 KiB/s
[0:04:06] Receiving objects: 0% (1908/725797), 1.94 MiB | 467.00 KiB/s
[0:04:09] Receiving objects: 0% (2314/725797), 2.19 MiB | 309.00 KiB/s
[0:04:11] Receiving objects: 0% (2627/725797), 2.38 MiB | 151.00 KiB/s
[0:04:12] Receiving objects: 0% (2846/725797), 2.44 MiB | 114.00 KiB/s
[0:04:14] Receiving objects: 0% (2946/725797), 2.57 MiB | 98.00 KiB/s
[0:04:16] Receiving objects: 0% (3256/725797), 2.75 MiB | 81.00 KiB/s
[0:04:17] Receiving objects: 0% (4832/725797), 3.00 MiB | 105.00 KiB/s
[0:04:18] Receiving objects: 1% (7530/725797), 4.69 MiB | 347.00 KiB/s
[0:04:19] Receiving objects: 1% (8869/725797), 6.06 MiB | 672.00 KiB/s
[0:04:20] Receiving objects: 1% (9271/725797), 6.38 MiB | 700.00 KiB/s
[0:04:22] Receiving objects: 1% (11294/725797), 7.63 MiB | 860.00 KiB/s
[0:04:23] Receiving objects: 1% (12132/725797), 8.13 MiB | 650.00 KiB/s
[0:04:24] Receiving objects: 1% (12769/725797), 8.38 MiB | 495.00 KiB/s
[0:04:26] Receiving objects: 2% (14516/725797), 8.88 MiB | 492.00 KiB/s
[0:04:27] Receiving objects: 2% (18220/725797), 11.75 MiB | 831.00 KiB/s
[0:04:30] Receiving objects: 2% (19931/725797), 12.75 MiB | 863.00 KiB/s
[0:04:31] Receiving objects: 2% (20684/725797), 13.19 MiB | 491.00 KiB/s
[0:04:33] Receiving objects: 2% (20904/725797), 13.31 MiB | 287.00 KiB/s
[0:04:35] Receiving objects: 2% (21236/725797), 13.50 MiB | 183.00 KiB/s
[0:04:36] Receiving objects: 2% (21663/725797), 13.69 MiB | 147.00 KiB/s
[0:04:38] Receiving objects: 3% (22418/725797), 14.12 MiB | 141.00 KiB/s
[0:04:40] Receiving objects: 3% (22860/725797), 14.37 MiB | 171.00 KiB/s
[0:04:41] Receiving objects: 3% (23184/725797), 14.62 MiB | 178.00 KiB/s
[0:04:44] Receiving objects: 3% (24010/725797), 15.12 MiB | 202.00 KiB/s
[0:04:45] Receiving objects: 3% (24210/725797), 15.25 MiB | 177.00 KiB/s
[0:04:46] Receiving objects: 3% (24417/725797), 15.37 MiB | 148.00 KiB/s
[0:04:48] Receiving objects: 3% (24618/725797), 15.50 MiB | 144.00 KiB/s
[0:04:49] Receiving objects: 3% (24721/725797), 15.56 MiB | 122.00 KiB/s
[0:04:50] Receiving objects: 3% (25041/725797), 15.62 MiB | 114.00 KiB/s
[0:04:52] Receiving objects: 4% (29032/725797), 17.75 MiB | 372.00 KiB/s
[0:04:53] Receiving objects: 4% (31496/725797), 19.37 MiB | 643.00 KiB/s
[0:04:54] Receiving objects: 4% (32249/725797), 19.94 MiB | 897.00 KiB/s
[0:04:57] Receiving objects: 4% (33109/725797), 20.43 MiB | 746.00 KiB/s
[0:04:58] Receiving objects: 4% (33429/725797), 20.68 MiB | 335.00 KiB/s
[0:05:29] error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0
[0:05:29] error: 48054 bytes of body are still expected
[0:05:29] fetch-pack: unexpected disconnect while reading sideband packet
[0:05:29] fatal: early EOF
[0:05:29] fatal: fetch-pack: invalid index-pack output
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 1398, in _Clone
self._Run(clone_cmd,
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 1745, in _Run
gclient_utils.CheckCallAndFilter(cmd, env=env, **kwargs)
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_utils.py", line 733, in CheckCallAndFilter
raise subprocess2.CalledProcessError(rv, args, kwargs.get('cwd', None),
subprocess2.CalledProcessError: Command 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src/tools D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\_gclient_tools_232iudyp' returned non-zero exit status 128 in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc
[0:05:33] _____ Conflicting directory found in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\tools. Moving to D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc_bad_scm\src\toolsirsegzbn.

Warnings:
Conflicting directory D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\tools moved to D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc_bad_scm\src\toolsirsegzbn.
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 832, in update
self.current_revision = self._Clone(revision, url, options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 1398, in _Clone
self._Run(clone_cmd,
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 1745, in _Run
gclient_utils.CheckCallAndFilter(cmd, env=env, **kwargs)
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_utils.py", line 733, in CheckCallAndFilter
raise subprocess2.CalledProcessError(rv, args, kwargs.get('cwd', None),
subprocess2.CalledProcessError: Command 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://chromium.googlesource.com/chromium/src/tools D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\_gclient_tools_232iudyp' returned non-zero exit status 128 in D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\11197\AppData\Local\vpython-root.0\store\cpython+gdee0q11ohi0s4eqh0uqprvov4\contents\bin\Lib\shutil.py", line 853, in move
os.rename(src, real_dst)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\tools' -> 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\_bad_scm\src\toolsirsegzbn\tools'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\metrics.py", line 302, in print_notice_and_exit
yield
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py", line 4670, in <module>
sys.exit(main(sys.argv[1:]))
^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py", line 4656, in main
return dispatcher.execute(OptionParser(), argv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\subcommand.py", line 254, in execute
return command(parser, args[1:])
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py", line 4009, in CMDsync
ret = client.RunOnDeps('update', args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py", line 2449, in RunOnDeps
work_queue.flush(revision_overrides,
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_utils.py", line 1045, in flush
reraise(e[0], e[1], e[2])
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_utils.py", line 54, in reraise
raise value
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_utils.py", line 1124, in run
self.item.run(*self.args, **self.kwargs)
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient.py", line 1251, in run
self._got_revision = self._used_scm.RunCommand(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 137, in RunCommand
return getattr(self, command)(options, args, file_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 664, in wrapper
return_val = f(*args)
^^^^^^^^
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 835, in update
self._DeleteOrMove(options.force)
File "D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\gclient_scm.py", line 209, in _DeleteOrMove
shutil.move(self.checkout_path, dest_path)
File "C:\Users\11197\AppData\Local\vpython-root.0\store\cpython+gdee0q11ohi0s4eqh0uqprvov4\contents\bin\Lib\shutil.py", line 873, in move
copy_function(src, real_dst)
File "C:\Users\11197\AppData\Local\vpython-root.0\store\cpython+gdee0q11ohi0s4eqh0uqprvov4\contents\bin\Lib\shutil.py", line 448, in copy2
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "C:\Users\11197\AppData\Local\vpython-root.0\store\cpython+gdee0q11ohi0s4eqh0uqprvov4\contents\bin\Lib\shutil.py", line 256, in copyfile
with open(src, 'rb') as fsrc:
^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\tools'

Subprocess failed with return code 1.

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>gclient sync
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Syncing projects: 15% ( 8/51) src/build
[0:01:11] Still working on:
[0:01:11] src/tools

[0:01:21] Still working on:
[0:01:21] src/tools

[0:01:31] Still working on:
[0:01:31] src/tools

[0:01:41] Still working on:
[0:01:41] src/tools

[0:01:51] Still working on:
[0:01:51] src/tools

[0:02:01] Still working on:
[0:02:01] src/tools

[0:02:11] Still working on:
[0:02:11] src/tools

[0:02:21] Still working on:
[0:02:21] src/tools

[0:02:31] Still working on:
[0:02:31] src/tools

[0:02:41] Still working on:
[0:02:41] src/tools

[0:02:51] Still working on:
[0:02:51] src/tools

[0:03:01] Still working on:
[0:03:01] src/tools

[0:03:11] Still working on:
[0:03:11] src/tools

[0:03:21] Still working on:
[0:03:21] src/tools

[0:03:30] Still working on:
[0:03:30] src/tools
Syncing projects: 17% ( 9/51) src/tools
src/third_party (ERROR)

[0:00:00] Started.
[0:00:00] Finished running: git rev-list -n 1 HEAD
[0:00:00] Finished running: git rev-parse --abbrev-ref=strict HEAD

Error: 5>
5> ____ src\third_party at 7134995e816bf9580677bff342600f1d6a95fdc8
5> You have uncommitted changes.
5> cd into src\third_party, run git status to see changes,
5> and commit, stash, or reset.

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>set GYP_MSVS_VERSON=2022

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>set GYP_GENERATORS=msvs-ninja,ninja

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>set DEPOT_TOOLS_WIN_TOOLCHAIN=0

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
gn.py: Could not find gn executable at: ['D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn\gn.exe', 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn.exe']
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>cd ./src

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc.gclient_entries missing, .gclient file in parent directory D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc might not be the file you want to use.
gn.py: Could not find gn executable at: ['D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn\gn.exe', 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn.exe']
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src>cd ..

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>cd ..

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
gn.py: Could not find checkout in any parent of the current path.
This must be run inside a checkout.
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools>cd ./webrtc

D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc>gn gen out/m84 --args="is_debug=false is_component_build=false is_clang=false rtc_include_tests=false rtc_use_h264=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false"
gn.py: Could not find gn executable at: ['D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn\gn.exe', 'D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc\src\buildtools\win\gn.exe']

请你分析一下我在Windows上编译WebRTC时的问题所在。使用中文进行回答

الفكرة

Struggling with network setup

I’m tuning depot_tools to fetch WebRTC on Windows. Issues like incomplete downloads and connection errors suggest network instability or blockage. Adjusting git proxy and setting environment variables might resolve these problems.

Tweaking CIPD connections

OK, let me see. Adjusting CIPD_HTTP_PROXY and setting environment variables didn't solve it. Trying partial clones or different methods due to network instability and invalid SSL connections.

Assessing options

I’m thinking through stable internet setups and partial clone strategies. Exploring mirrors or shallow fetches to minimize data transfer. Augeous network stability is key for optimal CIPD functionality.

Ensuring stable connections

OK, let me see. Addressing network instability and firewall settings is crucial. Setting CIPD environment variables and using a robust VPN or stable proxy are essential steps for progress.

Reasoned for 8 seconds

الإجابة

从报错信息和操作过程来看,你现在遇到的主要问题是 WebRTC 的依赖仓库和工具无法完整下载/同步,导致最终在执行 gn gen 时找不到 gn.exe(也就是根本没能成功把 buildtools 这类内容拉下来)。具体地说,有以下几个关键点:


1. 网络环境/代理问题,导致仓库拉取/更新失败

  • CIPD 下载失败
    最开始 gclient 会尝试下载和更新 depot_tools 自带的 CIPD client(cipd),但出现了多次网络连接错误、RPC 超时 rpc error: code = Internal desc = prpc: sending request: Post ... connectex: A connection attempt failed... 之类的错误。
    这说明在国内或者公司网络环境下,如果没有配置好代理或 VPN,Google 的域名(例如 chrome-infra-packages.appspot.comgooglesource.com)经常会无法连接或时断时续。

  • git clone 大文件失败
    后续 fetch --nohooks webrtc 也无法成功克隆子仓库,比如 chromium.googlesource.com/chromium/src/tools 这个仓库体积很大(1~2GB 左右),拉取过程中多次出现 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0、“unexpected disconnect”、“fatal: early EOF” 等,典型的网络/代理导致下载中断的问题。
    说明即使你已经设定了 git config --global http.proxy / https.proxy 以及 set http_proxy=127.0.0.1:7890 之类环境变量,依然无法保证稳定连接到谷歌的仓库。有时是走不了代理,有时是超时或走代理被重置。

  • CIPD 本身对代理的支持
    CIPD 下载可能不一定自动遵守 HTTP_PROXYHTTPS_PROXY 环境变量,特别是如果它内部使用了别的库或走了新的调用方式,可能需要额外配置。有时候还需要设 no_proxy 或者其他系统级的代理设置。
    如果你是在翻墙 / 科学上网,需要尽可能确保 CIPD、gitgclient 这些过程都能穿透代理并保持连接稳定。

所以,从根本上看,你需要 一个高速、稳定、完整的网络代理或 VPN 环境,让所有谷歌域名都能顺利拉取代码、下载 CIPD 包。否则 fetch/gclient 执行到中途就会被重置或中断,从而造成仓库不完整。


2. 同步未完成导致 gn.exe 不存在

  • gn 是从 src/buildtools 子仓库下载下来的,可你在日志里已经看到 src/toolssrc/third_party 等好几个子仓库克隆拉取失败。
  • 因为 depot_tools 在同步时会把编译所需的工具链/脚本(包括 gn.exe)也拉取下来,一旦这些子仓库中断或下载失败,后面就没法找到 gn
  • 你在各种目录下尝试 gn gen 都报一样的错:Could not find gn executable at: ['...buildtools\\win\\gn\\gn.exe']。其实就是因为同步没成功,文件没下载下来。

3. “You have uncommitted changes” 提示

在某次 gclient sync 出错后,日志里出现了:

text
Error: 5> 5> ____ src\third_party at 7134995e816bf9580677bff342600f1d6a95fdc8 5> You have uncommitted changes. 5> cd into src\third_party, run git status to see changes, 5> and commit, stash, or reset.

这种提示通常是说某个目录 src/third_party 里,可能生成了局部文件或者有一些中途下载的文件,git 状态不干净。你可以进去 src\third_party 看看 git status,如果只是自动生成的临时文件,可以 git stashgit reset --hard 把它还原,然后再次 gclient sync

不过在你网络不稳定的情况下,这一步能否把仓库完全修复好,仍然要看后续是否能稳定下载。


4. 建议与思路

  1. 确保网络环境通畅

    • 优先使用稳定可靠的 VPN 或代理,并在系统/命令行里确认 pingtelnet 443 之类是否真的能连通谷歌域名。
    • 如果使用的是某些翻墙工具,要确认它是否真的支持 git 大文件下载、CIPD 大文件下载。有些工具对大流量、大文件的中途拉取很容易超时或出现断流。
    • 可以尝试在代理配置里开启“全局代理”,而不是“PAC”。
  2. 检查 CIPD 是否可以走代理

    • CIPD 也会用到 https 访问。除了给 git 配置代理外,最好还要给系统级 / 命令行环境配置 HTTPS_PROXYHTTP_PROXY,并确认 CIPD 能读到这些变量。
    • 有人可能还会额外设 ALL_PROXY
    • 如果还是不行,可以参考一些翻墙编译 WebRTC / Chromium 的经验贴,看看有没有专门的设置 CIPD 代理参数的方法。
  3. 再次 fetch webrtc 或者 gclient sync

    • 最好先把之前拉取不完整的目录删除或清理干净,避免存留“坏”文件(例如 D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc 整个删掉重来)。
    • 让它从头开始,把 depot_tools 自身更新好,然后去拉取 webrtc/src 等所有子模块,这样可以避免在中途产生大量冲突文件。
    • 同步过程中如果提示“重试 after a short nap”,说明 google/source 的服务器还在下载,但断断续续。如果下载速度太慢,可能需要换节点或者确保你的梯子够快。
  4. 考虑使用镜像

    • 有些第三方提供了 chromium / webrtc 的镜像,可以用更快的国内镜像地址来 clone,然后再和官方仓库对比同步。虽然不一定是最新,但可以减少初次完整拉取的失败。
    • 或者,你可以在一个网络状况非常好的环境(比如境外服务器或干脆开着梯子)把整个仓库拉取好,然后拷贝/打包到本地继续开发。
  5. 完成后再执行 gn/ninja

    • gclient sync 成功后,会自动在 src/buildtools/win/gn/gn.exe 位置生成(或者说下载)可执行文件,你就可以 cd src 然后 gn gen out/...
    • 如果一开始就 gn gen,肯定会找不到 gn.exe

总结

  • 核心症结就是:WebRTC/Chromium 相关仓库庞大 + 你所在环境网络不稳定 → 导致仓库拉不全,CIPD 客户端也安装失败,后续就算 set http_proxy 也不一定解决所有问题
  • 需要先解决翻墙/代理的稳定性,把 fetch webrtc(或 gclient sync)完整跑成功,所有子仓库都正常下载、提取、checkout。然后再执行 gn 的后续步骤。
  • 如果代理实在不行,也可以寻找“离线先拉取 + 打包”或者“镜像仓库”之类的替代方案。

只要网络问题搞定、同步全部完成,buildtools\win\gn\gn.exe 就会在本地出现,gn gen 自然就不会报错了。祝你编译成功。

سؤال

"

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_MSVS_VERSON=2022

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_GENERATORS=msvs-ninja,ninja

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set DEPOT_TOOLS_WIN_TOOLCHAIN=0

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.
D:\Work_and_learn\Code\CPP\WebRTC\webrtc>cd ./src

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 324, in <module>
main()
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 270, in main
env = _LoadToolchainEnv(cpu, toolchain_root, win_sdk_path, target_store)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 173, in _LoadToolchainEnv
raise Exception('%s is missing - make sure VC++ tools are installed.' %
Exception: D:\Software\Microsoft Visual Studio\2022\Community\VC\vcvarsall.bat is missing - make sure VC++ tools are installed.
ERROR at //build/toolchain/win/win_toolchain_data.gni:9:7: Script returned non-zero exit code.
exec_script("//build/toolchain/win/setup_toolchain.py",
^----------
Current dir: D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/out/Release-vs2022/
Command: C:/Users/Mio/AppData/Local/vpython-root.0/store/python_venv-7ghsld8dmpuf6654t9mu9pba6s/contents/Scripts/python3.exe D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/build/toolchain/win/setup_toolchain.py "D:\Software\Microsoft Visual Studio\2022\Community" "C:\Program Files (x86)\Windows Kits\10" "C:\WINDOWS\System32;C:\WINDOWS\SysWOW64;Arm64Unused" win x86 environment.x86
Returned 1.
See //build/toolchain/win/toolchain.gni:13:1: whence it was imported.
import("//build/toolchain/win/win_toolchain_data.gni")
^----------------------------------------------------
See //build/toolchain/win/BUILD.gn:6:1: whence it was imported.
import("//build/toolchain/win/toolchain.gni")
^-------------------------------------------
See //BUILD.gn:39:3: which caused the file to be included.
group("default") {
^------------------
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 138, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 111, in main
last_commit_timestamp = int(open(lastchange_file).read())
^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\util\LASTCHANGE.committime'

"

这次又是遇到了什么错误?

الفكرة

Addressing the missing file

I'm working through the absence of vcvarsall.bat in the specified directory, which likely indicates an incomplete installation of Visual Studio or its tools.

Reasoned for 5 seconds

الإجابة

从你贴出的报错信息来看,这次最大的错误点在于脚本 找不到 vcvarsall.bat,也就是提示:

Exception: D:\Software\Microsoft Visual Studio\2022\Community\VC\vcvarsall.bat is missing - make sure VC++ tools are installed.

简而言之:脚本在构建时需要调用 VC++ 工具集(vcvarsall.bat),但你的指定路径下没有找到该文件,因此报错。


为什么找不到 vcvarsall.bat?

  1. 可能没有安装 Visual C++ 相关组件
    虽然你已经安装了 VS2022,但有时候只安装了部分组件(比如只安装了 C#/.NET 工作负载,缺少“使用 C++ 的桌面开发”或“使用 C++ 的游戏开发”等),就不会有 vcvarsall.bat

  2. VS2022 的安装路径层级不同

    • 通常 VS2022 的默认安装位置在 C:\Program Files\Microsoft Visual Studio\2022\Community 或者类似路径。
    • 你把它安装在 D:\Software\Microsoft Visual Studio\2022\Community 也是可以的,但要确保 “C++ 编译器和工具集” 确实装进了这个路径下的 VC\Tools\MSVC\xxxx.xxxx\bin\Hostx64\x64 等子目录,并且 VC\vcvarsall.bat 存在。
    • 有可能你在安装向导中勾选了“使用 Visual Studio 编辑器”但漏选了“使用 C++ 的桌面开发”之类的必选组件,导致实际上 vcvarsall.bat 并没有被安装。
  3. GYP_MSVS_OVERRIDE_PATH 路径不对
    你设置的是:

    text
    set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community

    这会让脚本去找 {GYP_MSVS_OVERRIDE_PATH}\VC\vcvarsall.bat。如果你真实的 VC 工具所在路径不是这里或者层级不同,也会找不到。


如何解决?

  1. 检查/补装 VS2022 的 C++ 工具

    • 打开“Visual Studio Installer” → 找到你的 VS2022 → 点击“修改”或“更多” → 勾选“使用 C++ 的桌面开发”或相关的“C++ 生成工具”。
    • 如果你已经勾选,再查看组件列表里是否有“MSVC v143 - VS 2022 C++ x64/x86 build tools”这一项。
    • 安装完后,你在 D:\Software\Microsoft Visual Studio\2022\Community\VC\ 目录下应该会看到 vcvarsall.bat 等脚本和二进制。
  2. 确认路径是否正确

    • 安装完成后,去实际查看 D:\Software\Microsoft Visual Studio\2022\Community\VC\ 下是否真的有 vcvarsall.bat
    • 如果装好后还在别的文件夹,比如 D:\Software\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat,那你就需要相应修改 GYP_MSVS_OVERRIDE_PATH 的值,保证 脚本路径 + \VC\vcvarsall.bat 能对应上真正的文件。
    • 也可以在命令行里直接执行 where vcvarsall.bat 或者自己翻到具体位置,确认一下真实所在位置。
  3. 再次执行 gn gen

    • 等保证 vcvarsall.bat 存在后,再进入 D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src 执行 gn gen out\Release-vs2022 --ide=vs2022 --args="..."
    • 如果成功,说明脚本已能正常找到 VC++ 工具链。
  4. “FileNotFoundError: ... LASTCHANGE.committime”

    • 这是后面另一个报错,往往和 gclient sync 不完整也有关系,或者是脚本在生成构建信息时用到 build/util/LASTCHANGE 系列文件,却没同步完全。
    • 首先你需要保证代码仓库本身完整(gclient sync 成功),然后在 gn gen 时才可能正常找到并生成 LASTCHANGE.committime
    • 所以如果缺失依然报这个错,还是要检查你的仓库是否同步完成了。

总结

核心问题: WebRTC 的构建脚本在 Windows 环境下需要 MSVC 的工具链,而脚本没找到 vcvarsall.bat,说明你还没安装 C++ 工具或者设置的路径不正确。

解决思路:

  1. 用 Visual Studio Installer 确认安装了“使用 C++ 的桌面开发”工作负载,并确保 vcvarsall.bat 存在。
  2. 重新设置/确认 GYP_MSVS_OVERRIDE_PATH 指向正确的 VS 根目录结构(让脚本能在其下 VC\vcvarsall.bat 找到对应文件)。
  3. 确保 gclient sync 同步完整,然后在 src 目录下重新执行 gn gen。

只要 MSVC 工具装好、路径指定对,且代码同步完成,这个错误就会消失。

سؤال

"

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set http_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set https_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_MSVS_VERSON=2022

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Common

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Common

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_GENERATORS=msvs-ninja,ninja

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set DEPOT_TOOLS_WIN_TOOLCHAIN=0

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 138, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 111, in main
last_commit_timestamp = int(open(lastchange_file).read())
^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\util\LASTCHANGE.committime'
ERROR at //build/timestamp.gni:31:19: Script returned non-zero exit code.
build_timestamp = exec_script(compute_build_timestamp,
^----------
Current dir: D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/out/Release-vs2022/
Command: C:/Users/Mio/AppData/Local/vpython-root.0/store/python_venv-7ghsld8dmpuf6654t9mu9pba6s/contents/Scripts/python3.exe D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/build/compute_build_timestamp.py default
Returned 1.
See //build/config/win/BUILD.gn:13:1: whence it was imported.
import("//build/timestamp.gni")
^-----------------------------
See //build/config/BUILDCONFIG.gn:372:5: which caused the file to be included.
"//build/config/win:default_cfg_compiler",

"

这次编译又是什么问题?

الفكرة

Fixing the build error

Syncing and verifying

Ensuring proper sync

Ensuring a full sync

Reasoned for 13 seconds

الإجابة

从这条报错可见,脚本在尝试读取

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\util\LASTCHANGE.committime

这个文件,但它 不存在,因此抛出 FileNotFoundError。这是 典型的 WebRTC/Chromium 构建环境缺少“LASTCHANGE”信息 的问题。通常该文件应由 gclient sync 或相关的 runhooks 步骤在同步/更新代码后自动生成,记录当前仓库最后一次提交的时间戳。

也就是说,你的仓库还没有完全同步好,或者漏掉了某些自动生成步骤(例如 gclient runhooks)导致 build/util/LASTCHANGE.committime 没被创建,直接 gn gen 就会报错。


可能原因与解决思路

  1. WebRTC/Chromium 同步不完整

    • 如果之前 gclient sync 过程并未成功结束(中途网络断开、文件拉取失败等),则会造成部分文件或工具缺失。
    • 建议删除 webrtc\src 或者在里面执行 git status,确认没有残留冲突或没提交的临时文件,然后再次 gclient sync,让它 无错误地 把所有依赖和脚本都下载到位。
    • 一定要保证日志里没有因为网络超时等报错。
  2. 缺少 gclient runhooks 步骤

    • 一般在官方文档流程里,gclient sync 完成后,会提示再运行 gclient runhooks(或者它自动运行)来执行一些脚本钩子,这些脚本会在 build/util/ 生成或更新 LASTCHANGE 等信息。
    • 如果你仅仅做了 fetch webrtc + gclient sync,但那些操作没有顺利运行到生成 LASTCHANGE.committime 的环节,也会导致后面 gn gen 时找不到文件。
  3. 确认为代理/网络稳定后再同步

    • 在国内或公司内网环境里,通常需要稳定代理/VPN 才能完整拉下大的 Chromium/Chromium-webrtc 仓库。之前你多次遇到拉取中断、SSL 失败等问题,也会导致缺少脚本文件。
    • 所以务必先解决网络问题,配置好 http_proxyhttps_proxy,让 gclient sync 可以成功一次性下载所有依赖,不再因为超时而被中断。然后再看看 build/util/LASTCHANGE.* 是否出现。

建议操作流程

  1. 确认你的 webrtc 主目录里存在 .gclient 文件(或者你在更上层 depot_tools\webrtc 下有 .gclient),并且路径正确。
  2. webrtc/src 里执行:
    bash
    gclient sync # 或 gclient sync --force --with_branch_heads --with_tags
    看是否能够顺利完成,没有重试和超时错误。
  3. 同步完后,执行:
    bash
    gclient runhooks
    让它执行钩子脚本。如果一切顺利,会生成 build/util/LASTCHANGE 等相关文件。
  4. 最后再 gn gen out\Release-vs2022 --args="..."。这样就不会再报 LASTCHANGE.committime 缺失的错了。

只要同步/钩子都完整执行,build\util 下的各种 LASTCHANGE 文件就会自动生成,compute_build_timestamp.py 也能正常读取。

سؤال

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gclient sync
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Syncing projects: 100% (51/51), done.

________ running 'python3 src/tools/clang/scripts/update.py' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Win/clang-llvmorg-21-init-1655-g7b473dfe-1.tar.xz .......... Done.
Running hooks: 74% (20/27) rc_win
________ running 'python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang/rc -s src/build/toolchain/win/rc/win/rc.exe.sha1' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
0> Downloading src/build/toolchain/win/rc/win/rc.exe@dea7da0d9bfcb8dad6cf53ca608dddac3459faaa...
Downloading 1 files took 7.660909 second(s)
Running hooks: 85% (23/27)
________ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Hook 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' took 124.58 secs
Running hooks: 88% (24/27) Generate component metadata for tests
________ running 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
ϵͳ�Ҳ���ָ����·����
Error: Command 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' returned non-zero exit status 1 in D:\Work_and_learn\Code\CPP\WebRTC\webrtc
ϵͳҲָ·

Hook 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' took 11.97 secs

我这gclient sync算是执行成功了吗?如果没成功又该如何解决这个问题?

الفكرة

Addressing proxy warnings

Hmm, I’m noticing some warnings about proxy settings during WebRTC build on Windows. Suggestions include using a .boto file for proxy setup or incorporating values directly into the build script.

Addressing script path issues

I'm realizing that the "vpython3.bat" script isn't found, possibly due to missing in the path or not existing. Ensuring "vpython" is installed and correctly set up may solve this.

Verifying installation

Ensuring "vpython" is installed correctly or in the system path is crucial. The "gclient sync" might fail if "vpython" isn't properly set up.

Confirming Python setup

Ensuring that Python, particularly "vpython," is properly installed and set up is crucial. This includes checking "gclient sync" execution within the "depot_tools" environment.

Reasoned for 12 seconds

الإجابة

从日志可以看出,同步(Syncing projects)本身已经到达 100%,也就是说 所有仓库子模块的源代码都已下载完毕。不过在 执行后续 hooks(也就是 gclient sync 默认会调用的 runhooks 阶段)时,出现了下面的报错:

text
vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json ϵͳ�Ҳ���ָ����·���� (系统找不到指定路径) Error: Command 'vpython3.bat src/testing/generate_location_tags.py [...]' returned non-zero exit status 1

结果导致整个 gclient sync 最终以错误收尾(提示 Hook 出错)。所以可以说:

  • 代码下载:已完成。
  • 后续钩子(hooks)执行:部分失败,没有完全成功。

这些 “hooks” 脚本通常会做一些自动化配置、生成文件、检查环境之类的步骤;一旦出错,可能会导致后续编译时又缺东西(例如某些自动生成的配置/metadata 没生成)。


为什么会报 vpython3.bat 找不到?

Chromium/Webrtc 的构建系统默认使用 vpython(“Virtualenv Python”)来隔离 Python 环境。vpython3.bat 是在 Windows 下调用 vpython 的脚本,如果 depot_tools 安装或配置不完善,或者当前命令行环境找不到 vpython3.bat,就会报“系统找不到指定路径”类似的错误。

常见原因包括:

  1. depot_tools 未在 PATH 中

    • 你需要确保 depot_tools 路径在系统的环境变量 PATH 中,并且这个 PATH 是在你现在启动的命令行里生效的。
    • 命令行里输入 where vpython3.bat 看看能否找到,如果找不到就说明没有被正确加到 PATH。
  2. Python / vpython 环境缺失或不完整

    • 可能你没有按照 WebRTC/Chromium 官方推荐在 Windows 上同时安装 Python 并让 depot_tools 的 vpython(3).bat 正常工作。
    • 一些情况下需要主动安装 Python 3.8+ 并且通过 vpython 来执行脚本,depot_tools 内部会做一个 virtualenv。
    • 也有人在 Python 里缺少某些依赖包时,会导致 vpython 执行出错。
  3. 其他脚本错误或代理问题

    • 在执行 vpython3.bat ... 的过程中,如果内部还需要下载某些东西,而你的代理配置没有在 vpython 环境里生效,也可能报类似错误。但这里看起来更像是 “vpython3.bat” 不在可执行路径或者压根没生成。

要不要紧?该如何解决?

  1. 代码已经拉取完

    • 大部分源文件是下载到位的,这点从 “Syncing projects: 100% (51/51)” 可以确认。
    • 所以如果你只需要核心的 WebRTC 源码,有可能已经够了。
  2. hooks 执行失败,会导致部分自动步骤没完成

    • 例如 generate_location_tags.py 脚本用来生成某些测试元数据文件,如果缺失,将来编译或测试某些模块时可能再出错。
    • 如果你想要一个干净且完整的编译环境,最好解决 hooks 的失败问题,然后再行编译。
  3. 修复方式

    • (a) 确保 depot_tools 在当前 CMD/PowerShell 的 PATH 中
      • 打开命令行,where vpython3.bat 如果找不到,就需要 set PATH=%PATH%;D:\...\depot_tools 或在系统高级设置里永久加入。
    • (b) 确保本机安装了 Python 3,并与 depot_tools 兼容
      • 一般官方推荐安装 Python 3.8+,并在 PATH 中可以正常调用 python
    • (c) 再次 gclient runhooks
      • 当你确认 PATH、Python 都没问题后,可以进入 webrtc 主目录或 webrtc\src 目录,再执行:
        bash
        gclient runhooks
      • 如果 hooks 能正常运行,不再提示 vpython3.bat not found 等错误,就算是补齐了缺失的步骤。
  4. 如果只想跳过这些 hooks

    • 有些人只需要最基本的源码,不编译测试、不需要所有工具,也可能“放任”这部分 hooks 失败。但通常还是推荐让其跑完,以免后面编译、打包、测试时莫名其妙缺文件。

小结

  • 结论:你的代码同步完成了,但 “gclient sync” 在最后阶段的 hooks 出错,说明环境尚未完全配置好(主要是 vpython3.bat 问题)。
  • 解决:让 depot_tools 和本机 Python 设置正确,把 vpython3.bat 放入可执行路径,然后手动 gclient runhooks 看能否跑通。如果成功,才算真正的“同步+配置完成”。

سؤال

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gclient runhooks
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Running hooks: 74% (20/27) rc_win
________ running 'python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang/rc -s src/build/toolchain/win/rc/win/rc.exe.sha1' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Running hooks: 85% (23/27)
________ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Running hooks: 88% (24/27) Generate component metadata for tests
________ running 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
ϵͳ�Ҳ���ָ����·����
Error: Command 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' returned non-zero exit status 1 in D:\Work_and_learn\Code\CPP\WebRTC\webrtc
ϵͳҲָ·

Hook 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' took 11.00 secs

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Generating Visual Studio projects took 2949ms
Generating compile_commands took 241ms
Done. Made 1918 targets from 335 files in 10176ms

我没有再执着于这个问题,后序我直接运行了gclient runhooks,且运行了gn命令。我想知道这个生成的“Visual Studio projects”在什么路径下?

الفكرة

Identifying solution files

I’m piecing together that after running "gn gen out\Release-vs2022 --ide=vs2022", the Visual Studio solution files (.sln) like "all.sln" or "webrtc.sln" should be found in the out/Release-vs2022 directory.

Reasoned for 8 seconds

الإجابة

当你执行了

gn gen out\Release-vs2022 --ide=vs2022 [ --args=... ]

之后,GN 会在你指定的输出目录(这里是 out\Release-vs2022)里生成一系列用于 Visual Studio 的工程文件,包括 .sln.vcxproj 等。通常最主要的是一个 all.sln(或者在某些版本下叫 default.slnproject.sln 之类)。

因此,你只要在:

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\out\Release-vs2022\

这个目录下,就能找到 GN 生成的 Visual Studio solution(以及对应的 vcxproj 文件),用 VS 打开对应的 .sln 就可以浏览和编译整个工程了。

سؤال

生成开始于 9:36...
1>------ 已启动生成: 项目: resource_adaptation_api, 配置: GN x64 ------
1>ninja: Entering directory `D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\out\Release-vs2022'
1>[1/31] CXX obj/api/adaptation/resource_adaptation_api/resource.obj
1>FAILED: obj/api/adaptation/resource_adaptation_api/resource.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../api/adaptation/resource.cc /Foobj/api/adaptation/resource_adaptation_api/resource.obj /nologo /showIncludes -DUSE_AURA=1 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_STRICT_FIELD_TRIALS=0 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DRTC_ENABLE_VP9 -DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY -DWEBRTC_HAVE_SCTP -DWEBRTC_LIBRARY_IMPL -DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0 -DRTC_ENABLE_WIN_WGC -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_WIN -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /wd4244 /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE_= /D__TIME__= /D__TIMESTAMP__= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4702 /wd5041 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/api/adaptation/resource_adaptation_api_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\api/adaptation/resource.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\string
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/max.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/comp.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[2/31] CXX obj/third_party/abseil-cpp/absl/base/base/cycleclock.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/base/cycleclock.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/cycleclock.cc /Foobj/third_party/abseil-cpp/absl/base/base/cycleclock.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/base_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/cycleclock.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\atomic
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[3/31] CXX obj/third_party/abseil-cpp/absl/base/spinlock_wait/spinlock_wait.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/spinlock_wait/spinlock_wait.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/spinlock_wait.cc /Foobj/third_party/abseil-cpp/absl/base/spinlock_wait/spinlock_wait.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/spinlock_wait_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\atomic
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[4/31] CXX obj/third_party/abseil-cpp/absl/base/base/sysinfo.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/base/sysinfo.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/sysinfo.cc /Foobj/third_party/abseil-cpp/absl/base/base/sysinfo.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/base_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/sysinfo.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cstdint
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[5/31] CXX obj/third_party/abseil-cpp/absl/base/raw_logging_internal/raw_logging.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/raw_logging_internal/raw_logging.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/raw_logging.cc /Foobj/third_party/abseil-cpp/absl/base/raw_logging_internal/raw_logging.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/raw_logging_internal_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/raw_logging.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\string
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/max.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/comp.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[6/31] CXX obj/third_party/abseil-cpp/absl/base/log_severity/log_severity.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/log_severity/log_severity.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/log_severity.cc /Foobj/third_party/abseil-cpp/absl/base/log_severity/log_severity.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/log_severity_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/log_severity.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\array
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/equal.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/comp.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[7/31] CXX obj/third_party/abseil-cpp/absl/base/throw_delegate/throw_delegate.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/throw_delegate/throw_delegate.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/throw_delegate.cc /Foobj/third_party/abseil-cpp/absl/base/throw_delegate/throw_delegate.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/throw_delegate_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/throw_delegate.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\string
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/max.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__algorithm/comp.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[8/31] CXX obj/third_party/abseil-cpp/absl/strings/internal/escaping.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/internal/escaping.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/internal/escaping.cc /Foobj/third_party/abseil-cpp/absl/strings/internal/escaping.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/internal_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/escaping.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cassert
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[9/31] CXX obj/rtc_base/checks/checks.obj
1>FAILED: obj/rtc_base/checks/checks.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../rtc_base/checks.cc /Foobj/rtc_base/checks/checks.obj /nologo /showIncludes -DUSE_AURA=1 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBRTC_ENABLE_PROTOBUF=1 -DWEBRTC_STRICT_FIELD_TRIALS=0 -DWEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE -DRTC_ENABLE_VP9 -DRTC_DAV1D_IN_INTERNAL_DECODER_FACTORY -DWEBRTC_HAVE_SCTP -DWEBRTC_LIBRARY_IMPL -DPROTOBUF_ENABLE_DEBUG_LOGGING_MAY_LEAK_PII=0 -DRTC_ENABLE_WIN_WGC -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_WIN -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /wd4244 /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4702 /wd5041 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/rtc_base/checks_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cstdarg
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[10/31] CXX obj/third_party/abseil-cpp/absl/base/base/unscaledcycleclock.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/base/unscaledcycleclock.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.cc /Foobj/third_party/abseil-cpp/absl/base/base/unscaledcycleclock.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/base_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/unscaledcycleclock.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cstdint
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[11/31] CXX obj/third_party/abseil-cpp/absl/base/base/spinlock.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/base/spinlock.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/spinlock.cc /Foobj/third_party/abseil-cpp/absl/base/base/spinlock.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/base_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/spinlock.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\atomic
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[12/31] CXX obj/third_party/abseil-cpp/absl/strings/string_view/string_view.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/string_view/string_view.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/string_view.cc /Foobj/third_party/abseil-cpp/absl/strings/string_view/string_view.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/string_view_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/string_view.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\algorithm
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[13/31] CXX obj/third_party/abseil-cpp/absl/strings/strings/charconv.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/strings/charconv.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/charconv.cc /Foobj/third_party/abseil-cpp/absl/strings/strings/charconv.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/strings_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/charconv.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\system_error
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[14/31] CXX obj/third_party/abseil-cpp/absl/strings/internal/ostringstream.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/internal/ostringstream.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/internal/ostringstream.cc /Foobj/third_party/abseil-cpp/absl/strings/internal/ostringstream.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/internal_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/ostringstream.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cassert
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[15/31] CXX obj/third_party/abseil-cpp/absl/strings/strings/ascii.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/strings/ascii.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/ascii.cc /Foobj/third_party/abseil-cpp/absl/strings/strings/ascii.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/strings_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/ascii.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\algorithm
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[16/31] CXX obj/third_party/abseil-cpp/absl/strings/internal/utf8.obj
1>FAILED: obj/third_party/abseil-cpp/absl/strings/internal/utf8.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/strings/internal/utf8.cc /Foobj/third_party/abseil-cpp/absl/strings/internal/utf8.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/strings/internal_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/utf8.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cstddef
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[17/31] CXX obj/third_party/abseil-cpp/absl/numeric/int128/int128.obj
1>FAILED: obj/third_party/abseil-cpp/absl/numeric/int128/int128.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/numeric/int128.cc /Foobj/third_party/abseil-cpp/absl/numeric/int128/int128.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/numeric/int128_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/numeric/int128.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\cassert
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include_configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>[18/31] CXX obj/third_party/abseil-cpp/absl/base/base/thread_identity.obj
1>FAILED: obj/third_party/abseil-cpp/absl/base/base/thread_identity.obj
1>ninja -t msvc -e environment.x64 -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" /c ../../third_party/abseil-cpp/absl/base/internal/thread_identity.cc /Foobj/third_party/abseil-cpp/absl/base/base/thread_identity.obj /nologo /showIncludes -DUSE_AURA=1 -D_LIBCPP_HARDENING_MODE=LIBCPP_HARDENING_MODE_EXTENSIVE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_INSTRUMENTED_WITH_ASAN=0 -DCR_LIBCXX_REVISION=7c3087b8a7563d8218b27b7183ba41cf52d41508 -DTMP_REBUILD_HACK -D__STD_C -D_CRT_RAND_S -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_DEPRECATE -D_ATL_NO_OPENGL -D_WINDOWS -DCERT_CHAIN_PARA_HAS_EXTRA_FIELDS -DPSAPI_VERSION=2 -DWIN32 -D_SECURE_ATL -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP -DWIN32_LEAN_AND_MEAN -DNOMINMAX -D_UNICODE -DUNICODE -DNTDDI_VERSION=NTDDI_WIN10_NI -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_CRT_NONSTDC_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS -DABSL_ALLOCATOR_NOTHROW=1 -I../.. -Igen -I../../buildtools/third_party/libc++ -I../../third_party/abseil-cpp /Gy /FS /bigobj /utf-8 /wd4117 /D__DATE
= /D__TIME
= /D__TIMESTAMP
= /O2 /clang:-O2 /Oy- /Zc:inline /Gw /Zi /MT /wd4800 /wd4267 /wd4244 /std:c++17 /Zc:__cplusplus /TP -I../../third_party/libc++/src/include /Fd"obj/third_party/abseil-cpp/absl/base/base_cc.pdb"
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/thread_identity.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include\atomic
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__config
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\buildtools\third_party\libc++__config_site
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/abi.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/compiler.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/compiler.h(16): warning C4068: 未知的杂注“GCC”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/platform.h
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/platform.h(16): warning C4068: 未知的杂注“GCC”
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\libc++\src\include__configuration/platform.h(47): fatal error C1189: #error: "Your compiler doesn't seem to define BYTE_ORDER, which is required by libc++ to know the endianness of your target platform"
1>ninja: build stopped: subcommand failed.
1>D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\out\Release-vs2022\obj\api\adaptation\resource_adaptation_api.vcxproj(63,5): error MSB3073: 命令“call ninja.exe -C D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\out\Release-vs2022\ phony/api/adaptation/resource_adaptation_api”已退出,代码为 1。
1>已完成生成项目“resource_adaptation_api.vcxproj”的操作 - 失败。
========== 生成: 0 成功,1 失败,0 最新,0 已跳过 ==========
========== 生成 于 9:36 完成,耗时 19.598 秒 ==========

这是我在生成的.sln项目中直接运行的报错信息。我想知道该如何解决以上错误?

الفكرة

Noticing build issues

The problem seems to stem from Windows/MSVC not defining __BYTE_ORDER__, which is expected by libc++. This misalignment often happens when the build config misidentifies the compiler, incorporating clang-specific flags despite MSVC being set.

Confronting endianness

On Windows, MSVC doesn't define __BYTE_ORDER__. You'll need to specify _LIBCPP_LITTLE_ENDIAN, _LIBCPP_BIG_ENDIAN, or msvc-little-endian to ensure the correct endianness for libc++.

Tweaking build flags MSVC is facing issues with unsupported clang flags, like -O2. Reconfiguring GN args to exclude clang might resolve injection of unnecessary clang options.

Evaluating synthesis

I’m examining different methods to address MSVC issues, such as defining macros or removing libc++, while also considering the use of clang or a custom patch for a typical official approach.

Evaluating options

Building with clang or tweaking macros to meet MSVC's requirements appears crucial. The solution seems to involve setting is_clang=true in the gn args.

Evaluating methods

To resolve the issue, consider using clang for MSVC support, setting use_custom_libcxx=false, or defining macros like __BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__.

Reasoned for 34 seconds

الإجابة

从这些报错来看,你现在是用 Visual Studio 的 cl.exeis_clang=false)去编译,但编译命令里却在引用了 libc++ 以及带有类似 "/clang:-O2" 这样的选项。随后在编译 abseil-cpplibc++ 相关头文件时,出现:

text
"Your compiler doesn't seem to define __BYTE_ORDER__, which is required by libc++ to know the endianness of your target platform"

以及一堆 warning C4068: 未知的杂注“GCC”。这些都说明:WebRTC 的 GN 配置默认假设在 Windows 上使用 Clang/clang-cl(包含了 libc++),但你当前是在用 MSVC 的 cl.exe 编译,这两种编译器的宏定义和选项并不兼容,导致出错。


为什么会出现这个问题

  • WebRTC 默认在 Windows 用 Clang 工具链和 libc++
    Chromium/WeRTC 在 Windows 上编译时,官方默认/推荐用 clang-cl + libc++;这样才能一致地使用它的自带 C++ 标准库实现和编译参数。
  • 你却设置了 is_clang=false,相当于想用 MSVC 自带的 cl.exe + MSVC STL
    但 GN/脚本里依然把 libc++ 带进来,还生成了一些 Clang 风格的编译选项(如 /clang:-O2),这就造成了冲突。

结果就是:MSVC 环境不认识 __BYTE_ORDER__ 这些宏,而 libc++ 又需要它来判断大小端;再加上 MSVC 不支持 #pragma GCC ... 之类的用法,于是就编译失败。


解决思路

你要么 在 Windows 上按照官方推荐使用 Clang,要么 用 MSVC 但禁用掉 libc++,改用 MSVC 原生的 STL。具体有两条可选路线:

路线 A:切换到 Clang/clang-cl 编译

  1. 在 GN 参数里改成:
    bash
    gn gen out\Release-vs2022 --ide=vs2022 --args="is_clang=true target_cpu=\"x64\" ...
    这样就会使用 clang-cl 当编译器,并正常使用 libc++
  2. 需要先安装好LLVM/Clang,或者用 gclient 给你自动下载的 clang 工具链(看你的环境中是不是已经下好了)。
  3. 然后再用 Visual Studio 打开 out\Release-vs2022\all.sln,编译就会走 clang-cl 而不是 cl.exe。

这通常是 WebRTC/Chromium 在 Windows 的最常见做法,编译选项会统一,加上 “/clang:-O2” 就没问题了,因为 clang-cl 确实能认得这类参数。

路线 B:依然用 MSVC,但禁用 libc++

如果你 非要 用 MSVC 原生编译器/链接器,并且使用它自带的 STL,那么就需要在 GN args 里显式关闭 WebRTC 的 libc++:

  1. is_clang=false 保持不变,但加上:

    bash
    use_custom_libcxx = false

    (或者 WebRTC 的 GN 配置里可能用的是 use_libcxx=false,名字要查一下实际的 GN 变量。有些教程也提到 rtc_use_custom_libcxx=false。)

  2. 这样它就不会拉取/使用 buildtools/third_party/libc++,也不会包含那些依赖 _LIBCPP_... 的头文件。

  3. 编译过程就会使用 MSVC 自带的 msvcprt.lib<vector><string> 等头库。

  4. 此时你就不会遇到 __BYTE_ORDER__ 这个问题了,因为 MSVC 本身对大小端等宏的管理方式不一样。

注意:

  • 这种做法可能还需要搭配 treat_warnings_as_errors=false,因为 MSVC 一些警告不一定都修复了。
  • 在 WebRTC 的官方文档中,Windows 平台绝大多数场景都是直接用 clang-cl;少数情况下如果要用 cl.exe,需要自己确保 GN 配置能够兼容、测试通过。

其他几点

  • “/clang:-O2”被 cl.exe 忽略的警告
    这也印证了脚本是给 clang-cl 生成的参数,但 cl.exe 无法识别。
  • 要不要 _LIBCPP_LITTLE_ENDIAN 手动定义
    理论上,如果你想强行拼起来也可以自己 -D__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__,并且还要屏蔽一堆 #pragma GCC 警告,但后面可能还会遇到更多小麻烦。所以最简单还是按照前面两条“官方路线”来做:要么全 clang,要么全 MSVC(且禁用 libc++)。

总结/推荐

  1. 最简单:把 is_clang=true(用 clang-cl),这样就和 WebRTC 的默认脚本、libc++ 配置配合无碍。
  2. 如果坚决想用 MSVC:那么还要 use_custom_libcxx=false(或同义变量)来避免依赖 libc++;否则就会遇到 “Your compiler doesn't define BYTE_ORDER” 的报错。

选定方案后,重新 gn gen out\Release-vs2022 --args="..." 并编译,就能绕过上面那串错误。

سؤال


.....(已省略)
1>[30/31] CXX obj/third_party/abseil-cpp/absl/strings/strings/substitute.obj
1>cl : 命令行 warning D9002: 忽略未知选项“/clang:-O2”
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/substitute.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cstring
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\yvals_core.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\sal.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\concurrencysal.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vadefs.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xkeycheck.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\string.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\winapifamily.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\shared\winpackagefamily.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_memory.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_memcpy_s.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\errno.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime_string.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wstring.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\string
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xstring
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_sanitizer_annotate_container.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_string_view.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\iosfwd
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\yvals.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\crtdbg.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime_new_debug.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime_new.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\crtdefs.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\use_ansi.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cstdio
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\stdio.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wstdio.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_stdio_config.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cwchar
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\wchar.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wconio.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wctype.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wdirect.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wio.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_share.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wprocess.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wstdlib.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_wtime.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys/stat.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\sys/types.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xtr1common
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xutility
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_iter_core.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\utility
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\initializer_list
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cstddef
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\stddef.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\type_traits
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cstdint
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\stdint.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\climits
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\limits.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cstdlib
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\math.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_math.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\stdlib.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_malloc.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_search.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xmemory
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\limits
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cfloat
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\float.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\intrin0.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\intrin0.inl.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\new
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\exception
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xatomic.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xpolymorphic_allocator.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\tuple
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cctype
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\ctype.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vector
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_bit_utils.hpp
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/macros.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/attributes.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/config.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/options.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/policy_checks.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/optimization.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\intrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\setjmp.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\immintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\wmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\nmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\smmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\tmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\pmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\emmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\mmintrin.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\malloc.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\zmmintrin.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\ammintrin.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/port.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/nullability.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/nullability_impl.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\memory
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\typeinfo
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime_typeinfo.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\vcruntime_exception.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\eh.h
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\corecrt_terminate.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/meta/type_traits.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\functional
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\unordered_map
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xhash
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cmath
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\list
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xbit_ops.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xnode_handle.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\string_view
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/ascii.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\algorithm
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_heap_algorithms.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_minmax.hpp
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/resize_uninitialized.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/string_view.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\iterator
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/throw_delegate.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/escaping.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/str_join.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/str_join_internal.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/iterator_traits.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/raw_logging.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/atomic_hook.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\atomic
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xthreads.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_threads_core.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xtimec.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\ctime
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\time.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/log_severity.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\array
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\ostream
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\ios
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xlocnum
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\streambuf
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xiosbase
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\share.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\system_error
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_system_error_abi.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cerrno
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\stdexcept
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xcall_once.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xerrc.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xlocale
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xfacet
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xlocinfo
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include__msvc_xlocinfo_types.hpp
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\clocale
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\locale.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/ostringstream.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/str_cat.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/has_absl_stringify.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/stringify_sink.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/numbers.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/endian.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/casts.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/identity.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/base/internal/unaligned_access.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/numeric/bits.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/numeric/internal/bits.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/numeric/int128.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/types/compare.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/numeric/int128_no_intrinsic.inc
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/str_split.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\map
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\xtree
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\set
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/internal/str_split_internal.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/strip.h
1>注意: 包含文件: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp\absl/strings/match.h
1>注意: 包含文件: D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\include\cassert
1>注意: 包含文件: C:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt\assert.h
1>[31/31] LIB obj/rtc_base/checks.lib

我这是生成webrtc的静态库了吗?为什么我只看到了最后生成的是checks.lib而不是webrtc.lib?

الفكرة

Examining build dynamics

I’m analyzing the user's incomplete build process in WebRTC, noting it's likely tied to a partial or smaller project. WebRTC often builds multiple libraries, possibly without a single "webrtc.lib".

Understanding library dynamics

WebRTC isn't a single library; it consists of multiple object files. The user might need to build all projects or produce a single "webrtc.lib" to link everything.

Navigating build choices

I'm guiding the user through options like "peerconnection.lib" or "peerconnection_server.exe". WebRTC offers a modular build, either as a monolithic "webrtc.lib" or multiple sub-libraries.

Clarifying build options

I’m noting that UBuildingWebRTC involves partial libraries unless "is_component_build=false" is applied for a single "webrtc.lib". Urging the user to clarify their build system.

Highlighting build mechanics

I'm focusing on final linking in examples or tests. The user can see multiple .libs in the out directory, with the option to configure a single library using "is_component_build=false".

Reasoned for 13 seconds

الإجابة

从你贴出的日志看,最后确实只显示了生成 checks.lib,并没有出现一个叫 “webrtc.lib” 的文件。很多人会有疑问:** “WebRTC 不就是一个库吗?为什么没看到一个 webrtc.lib 呢?”**

实际上,WebRTC 在 Windows 上的 GN/Ninja 构建体系默认会产出一系列静态库(或者动态库),而不一定全部打包成一个单独的 “webrtc.lib”。换句话说,WebRTC 的源码被拆分为若干模块(api、rtc_base、modules、pc、sdk等等),每个模块可能都会链接生成各自的 .lib 文件。


1. 为什么只看见 checks.lib?

  • VS 里只编译了其中一个工程/target
    如果你在 Visual Studio 的解决方案中选中了某个单独的项目(例如 resource_adaptation_api 或其它),点击“生成”就只会编译与它相关的目标(targets)及其依赖。编译日志里出现了 31 个步骤,对应这部分依赖的源文件。

    • 最后可见 [31/31] LIB obj/rtc_base/checks.lib,说明编译结束时,产物是 checks.lib。
    • 可能别的模块暂时没被拉进来编译,所以你只看到了最后生成的 checks.lib。
  • WebRTC 被拆分为多个子库
    在 GN 构建配置中,如果你设置了 is_component_build=false,通常会把较多代码合并到几个大库里;但也不一定只剩下一个 webrtc.lib,而是会有一系列 .lib 分散于 out\Release-vs2022\obj\... 目录下。
    如果你设置了 is_component_build=true(或用默认值),那就会产出更多、更细的 .lib

  • 可能需要“全部编译”或“all”目标
    通常 GN 会有一个 “all” 或 “default” target,用于一次性编译所有模块。如果你只是右键某个子项目 → “Build”,那不会构建整个 WebRTC;也就不会产出你想象中的“webrtc.lib”(如果它存在的话)。


2. 如何查看/编译全部库?

方法 A:用命令行 Ninja 方式

  1. 打开命令行,进入 webrtc\src 目录。
  2. 运行
    bash
    ninja -C out\Release-vs2022
    这会根据你的 GN 配置把默认 target(往往是“all”)全部编译,包括所有依赖模块。如果一切成功,你会在 out\Release-vs2022\obj\... 里看到许多 .lib

方法 B:在 VS 里编译 “All projects” / “default target”

  1. 打开 out\Release-vs2022\all.sln(或者 GN 生成的其他 .sln),在“解决方案资源管理器”里找到一个类似 “all” 的工程,或 “ALL_BUILD”。
  2. 右键 → “生成”/“全部生成”,这样就会把所有 GN 目标都编译。

方法 C:查找你需要的特定库

  • 有时你并不需要整个 WebRTC 的全部模块,而只想用其中某些功能 (比如音频处理、视频编码)。在这种情况下,你可以在 GN 里定制 rtc_build_examples=false, rtc_include_tests=false 等等,再手动指定要编译哪些目标。
  • 最终在 out\Release-vs2022\obj\xxx 目录中,会出现若干 .lib。你在自己的项目中链接上这些 .lib(以及必要的头文件),即可使用对应功能。

3. 是否存在一个统一的 “webrtc.lib”?

  • 旧版本或有些分支 里,is_component_build=false 情况下,可能会生成一个大的 webrtc.lib,把大部分代码打包在一起。
  • 最新的主线代码 通常拆分为多个 library,例如 audio_decoder.lib, video_coding.lib, rtc_base.lib 等,各自负责不同子模块。
  • 有时 GN 的配置脚本还会做更多拆分或合并。因此不一定能看到单独一个 “webrtc.lib” 文件。

如果你确实想要一个统一的大库,可以尝试以下做法(不保证 100% 有效,要看当前分支的 GN 脚本):

bash
gn gen out\Release-vs2022 --args="is_debug=false \ is_component_build=false \ is_clang=false \ use_custom_libcxx=false \ rtc_build_examples=false \ rtc_include_tests=false" # 然后编译 ninja -C out\Release-vs2022

编完后在 out\Release-vs2022\obj/ 或者 out\Release-vs2022/ 下找一找。
有时它会叫 webrtc.lib,或是拆分成若干中型 .lib,需要你自己再链接/合并。


4. 小结

  • 日志显示只生成了 checks.lib,说明你这次仅编译了很小一部分 target
  • WebRTC 在 Windows 下不会必然产出一个“webrtc.lib”文件;通常有多个静态库,或者使用 clang-cl 产生动态库等。
  • 如果你想获得全部 WebRTC,可以用 Ninja 直接 ninja -C out\Release-vs2022,或者在 VS 里编译 “all” / “default” 工程;这样才能看到所有 .lib 文件都生成。
  • 如果你要一个单一大包,可设置 is_component_build=false + use_custom_libcxx=false 等,再看看 GN 脚本是否会合并到同一个 .lib。否则,它仍然会拆分成多个 .lib 供你链接到你自己的工程里。

سؤال

1.“

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set http_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set https_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>gclient
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
WARNING: Your metrics.cfg file was invalid or nonexistent. A new one will be created.
Usage: gclient.py <command> [options]

Meta checkout dependency manager for Git.

Commands are:
config creates a .gclient file in the current directory
diff displays local diff for every dependencies
fetch fetches upstream commits for all modules
flatten flattens the solutions into a single DEPS file
getdep gets revision information and variable values from a DEPS file
gitmodules adds or updates Git Submodules based on the contents of the DEPS file
grep greps through git repos managed by gclient
help prints list of commands or help for a specific command
installhooks installs gclient git hooks
metrics reports, and optionally modifies, the status of metric collection
pack generates a patch which can be applied at the root of the tree
recurse operates [command args ...] on all the dependencies
revert reverts all modifications in every dependencies
revinfo outputs revision info mapping for the client and its dependencies
root outputs the solution root (or current dir if there isn't one)
runhooks runs hooks for files that have been modified in the local working copy
setdep modifies dependency revisions and variable values in a DEPS file
status shows modification status for every dependencies
sync checkout/update all modules
validate validates the .gclient and DEPS syntax
verify verifies the DEPS file deps are only from allowed_hosts

Options:
--version show program's version number and exit
-h, --help show this help message and exit
-j JOBS, --jobs=JOBS Specify how many SCM commands can run in parallel;
defaults to 16 on this machine
-v, --verbose Produces additional output for diagnostics. Can be
used up to three times for more logging info.
--gclientfile=CONFIG_FILENAME
Specify an alternate .gclient file
--spec=SPEC create a gclient file containing the provided string.
Due to Cygwin/Python brokenness, it can't contain any
newlines.
--no-nag-max Ignored for backwards compatibility.

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>fetch --nohooks webrtc
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Running: 'C:\Users\Mio\AppData\Local\vpython-root.0\store\python_venv-nslapfgm0q9ojkk069ijku0e3k\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\gclient.py' root
Running: 'C:\Users\Mio\AppData\Local\vpython-root.0\store\python_venv-nslapfgm0q9ojkk069ijku0e3k\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\gclient.py' config --spec 'solutions = [
{
"name": "src",
"url": "https://webrtc.googlesource.com/src.git",
"deps_file": "DEPS",
"managed": False,
"custom_deps": {},
},
]
'
Running: 'C:\Users\Mio\AppData\Local\vpython-root.0\store\python_venv-nslapfgm0q9ojkk069ijku0e3k\contents\Scripts\python3.exe' 'D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\gclient.py' sync --nohooks --with_branch_heads

________ running 'git -c core.deltaBaseCacheLimit=2g clone --no-checkout --progress https://webrtc.googlesource.com/src.git D:\Work_and_learn\Code\CPP\WebRTC\webrtc_gclient_src_awf28_ol' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
Cloning into 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc_gclient_src_awf28_ol'...
remote: Total 469636 (delta 340523), reused 469636 (delta 340523)
Receiving objects: 100% (469636/469636), 410.23 MiB | 20.55 MiB/s, done.
Resolving deltas: 100% (340523/340523), done.
Syncing projects: 13% ( 7/51) src/buildtools/win-format:565cab9c66d61360c27c7d4df5defe1a78ab56d3
[0:02:23] Still working on:
[0:02:23] src/third_party
[0:02:23] src/tools

[0:02:33] Still working on:
[0:02:33] src/third_party
[0:02:33] src/tools

[0:02:43] Still working on:
[0:02:43] src/third_party
[0:02:43] src/tools

[0:02:53] Still working on:
[0:02:53] src/third_party
[0:02:53] src/tools

[0:03:03] Still working on:
[0:03:03] src/third_party
[0:03:03] src/tools

[0:03:13] Still working on:
[0:03:13] src/third_party
[0:03:13] src/tools

[0:03:23] Still working on:
[0:03:23] src/third_party
[0:03:23] src/tools

[0:03:33] Still working on:
[0:03:33] src/third_party
[0:03:33] src/tools

[0:03:43] Still working on:
[0:03:43] src/third_party
[0:03:43] src/tools

[0:03:53] Still working on:
[0:03:53] src/third_party
[0:03:53] src/tools

[0:04:01] Still working on:
[0:04:01] src/third_party
[0:04:01] src/tools
Syncing projects: 23% (12/51) src/tools/resultdb:infra/tools/result_adapter/${platform}
[0:05:01] Still working on:
[0:05:01] src/third_party

[0:05:11] Still working on:
[0:05:11] src/third_party

[0:05:21] Still working on:
[0:05:21] src/third_party

[0:05:31] Still working on:
[0:05:31] src/third_party

[0:05:41] Still working on:
[0:05:41] src/third_party

[0:05:51] Still working on:
[0:05:51] src/third_party

[0:06:01] Still working on:
[0:06:01] src/third_party

[0:06:11] Still working on:
[0:06:11] src/third_party

[0:06:21] Still working on:
[0:06:21] src/third_party

[0:06:31] Still working on:
[0:06:31] src/third_party

[0:06:41] Still working on:
[0:06:41] src/third_party

[0:06:51] Still working on:
[0:06:51] src/third_party

[0:07:01] Still working on:
[0:07:01] src/third_party

[0:07:11] Still working on:
[0:07:11] src/third_party

[0:07:21] Still working on:
[0:07:21] src/third_party

[0:07:31] Still working on:
[0:07:31] src/third_party

[0:07:41] Still working on:
[0:07:41] src/third_party

[0:07:51] Still working on:
[0:07:51] src/third_party

[0:08:01] Still working on:
[0:08:01] src/third_party

[0:08:11] Still working on:
[0:08:11] src/third_party

[0:08:21] Still working on:
[0:08:21] src/third_party

[0:08:31] Still working on:
[0:08:31] src/third_party

[0:08:41] Still working on:
[0:08:41] src/third_party

[0:08:51] Still working on:
[0:08:51] src/third_party

[0:09:01] Still working on:
[0:09:01] src/third_party

[0:09:11] Still working on:
[0:09:11] src/third_party

[0:09:21] Still working on:
[0:09:21] src/third_party

[0:09:31] Still working on:
[0:09:31] src/third_party

[0:09:41] Still working on:
[0:09:41] src/third_party

[0:09:51] Still working on:
[0:09:51] src/third_party

[0:10:01] Still working on:
[0:10:01] src/third_party

[0:10:12] Still working on:
[0:10:12] src/third_party

[0:10:22] Still working on:
[0:10:22] src/third_party

[0:10:32] Still working on:
[0:10:32] src/third_party

[0:10:42] Still working on:
[0:10:42] src/third_party

[0:10:52] Still working on:
[0:10:52] src/third_party

[0:11:02] Still working on:
[0:11:02] src/third_party

[0:11:12] Still working on:
[0:11:12] src/third_party

[0:11:22] Still working on:
[0:11:22] src/third_party

[0:11:31] Still working on:
[0:11:31] src/third_party
Syncing projects: 100% (51/51), done.
Running: git config --add remote.origin.fetch '+refs/tags/:refs/tags/'
Running: git config diff.ignoreSubmodules dirty

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>gclient sync
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Syncing projects: 100% (51/51), done.

________ running 'python3 src/build/vs_toolchain.py update --force' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
ServiceException: 401 Anonymous caller does not have storage.objects.list access to the Google Cloud Storage bucket. Permission 'storage.objects.list' denied on resource (or it may not exist).

Try running "gsutil.py config" to log into Google Cloud Storage.

No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For details search for DEPOT_TOOLS_WIN_TOOLCHAIN in the instructions at https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md

Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 656, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 652, in main
return commandssys.argv[1]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 553, in Update
subprocess.check_call(get_toolchain_args)
File "D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\bootstrap-2@3_11_8_chromium_35_bin\python3\bin\Lib\subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\bootstrap-2@3_11_8_chromium_35_bin\python3\bin\python3.exe', 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\depot_tools\win_toolchain\get_toolchain_if_necessary.py', '--output-json', 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\win_toolchain.json', '7393122652', '--force']' returned non-zero exit status 1.
Error: Command 'python3 src/build/vs_toolchain.py update --force' returned non-zero exit status 1 in D:\Work_and_learn\Code\CPP\WebRTC\webrtc
ServiceException: 401 Anonymous caller does not have storage.objects.list access to the Google Cloud Storage bucket. Permission 'storage.objects.list' denied on resource (or it may not exist).

Try running "gsutil.py config" to log into Google Cloud Storage.

No downloadable toolchain found. In order to use your locally installed version of Visual Studio to build Chrome please set DEPOT_TOOLS_WIN_TOOLCHAIN=0.
For details search for DEPOT_TOOLS_WIN_TOOLCHAIN in the instructions at https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md

Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 656, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 652, in main
return commandssys.argv[1]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\vs_toolchain.py", line 553, in Update
subprocess.check_call(get_toolchain_args)
File "D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\bootstrap-2@3_11_8_chromium_35_bin\python3\bin\Lib\subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['D:\Work_and_learn\Code\CPP\WebRTC\depot_tools\bootstrap-2@3_11_8_chromium_35_bin\python3\bin\python3.exe', 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\depot_tools\win_toolchain\get_toolchain_if_necessary.py', '--output-json', 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\win_toolchain.json', '7393122652', '--force']' returned non-zero exit status 1.

Hook 'python3 src/build/vs_toolchain.py update --force' took 26.48 secs

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_MSVS_VERSON=2022

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set GYP_GENERATORS=msvs-ninja,ninja

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>set DEPOT_TOOLS_WIN_TOOLCHAIN=0

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.
D:\Work_and_learn\Code\CPP\WebRTC\webrtc>cd ./src

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 324, in <module>
main()
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 270, in main
env = _LoadToolchainEnv(cpu, toolchain_root, win_sdk_path, target_store)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\toolchain\win\setup_toolchain.py", line 173, in _LoadToolchainEnv
raise Exception('%s is missing - make sure VC++ tools are installed.' %
Exception: D:\Software\Microsoft Visual Studio\2022\Community\VC\vcvarsall.bat is missing - make sure VC++ tools are installed.
ERROR at //build/toolchain/win/win_toolchain_data.gni:9:7: Script returned non-zero exit code.
exec_script("//build/toolchain/win/setup_toolchain.py",
^----------
Current dir: D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/out/Release-vs2022/
Command: C:/Users/Mio/AppData/Local/vpython-root.0/store/python_venv-7ghsld8dmpuf6654t9mu9pba6s/contents/Scripts/python3.exe D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/build/toolchain/win/setup_toolchain.py "D:\Software\Microsoft Visual Studio\2022\Community" "C:\Program Files (x86)\Windows Kits\10" "C:\WINDOWS\System32;C:\WINDOWS\SysWOW64;Arm64Unused" win x86 environment.x86
Returned 1.
See //build/toolchain/win/toolchain.gni:13:1: whence it was imported.
import("//build/toolchain/win/win_toolchain_data.gni")
^----------------------------------------------------
See //build/toolchain/win/BUILD.gn:6:1: whence it was imported.
import("//build/toolchain/win/toolchain.gni")
^-------------------------------------------
See //BUILD.gn:39:3: which caused the file to be included.
group("default") {
^------------------
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 138, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 111, in main
last_commit_timestamp = int(open(lastchange_file).read())
^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\util\LASTCHANGE.committime'

2.“

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set http_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set https_proxy=10.15.15.141:20172

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_MSVS_VERSON=2022

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Common

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Common

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set GYP_GENERATORS=msvs-ninja,ninja

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>set DEPOT_TOOLS_WIN_TOOLCHAIN=0

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Traceback (most recent call last):
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 138, in <module>
sys.exit(main())
^^^^^^
File "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\compute_build_timestamp.py", line 111, in main
last_commit_timestamp = int(open(lastchange_file).read())
^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\build\util\LASTCHANGE.committime'
ERROR at //build/timestamp.gni:31:19: Script returned non-zero exit code.
build_timestamp = exec_script(compute_build_timestamp,
^----------
Current dir: D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/out/Release-vs2022/
Command: C:/Users/Mio/AppData/Local/vpython-root.0/store/python_venv-7ghsld8dmpuf6654t9mu9pba6s/contents/Scripts/python3.exe D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/build/compute_build_timestamp.py default
Returned 1.
See //build/config/win/BUILD.gn:13:1: whence it was imported.
import("//build/timestamp.gni")
^-----------------------------
See //build/config/BUILDCONFIG.gn:372:5: which caused the file to be included.
"//build/config/win:default_cfg_compiler",
^----------------------------------------
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>cd ..

D:\Work_and_learn\Code\CPP\WebRTC\webrtc>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
ERROR Can't find source root.
I could not find a ".gn" file in the current directory or any parent,
and the --root command-line argument was not specified.
D:\Work_and_learn\Code\CPP\WebRTC\webrtc>cd ./src

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gclient sync
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Syncing projects: 100% (51/51), done.

________ running 'python3 src/tools/clang/scripts/update.py' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
Downloading https://commondatastorage.googleapis.com/chromium-browser-clang/Win/clang-llvmorg-21-init-1655-g7b473dfe-1.tar.xz .......... Done.
Running hooks: 74% (20/27) rc_win
________ running 'python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang/rc -s src/build/toolchain/win/rc/win/rc.exe.sha1' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
0> Downloading src/build/toolchain/win/rc/win/rc.exe@dea7da0d9bfcb8dad6cf53ca608dddac3459faaa...
Downloading 1 files took 7.660909 second(s)
Running hooks: 85% (23/27)
________ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Hook 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' took 124.58 secs
Running hooks: 88% (24/27) Generate component metadata for tests
________ running 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
ϵͳ�Ҳ���ָ����·����
Error: Command 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' returned non-zero exit status 1 in D:\Work_and_learn\Code\CPP\WebRTC\webrtc
ϵͳҲָ·

Hook 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' took 11.97 secs

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gclient runhooks
Updating depot_tools...
WARNING:root:depot_tools recommends setting the following for
optimal Chromium development:

gitconfigglobalcore.autocrlffalsegit config --global core.autocrlf false git config --global core.filemode false
gitconfigglobalcore.fscachetruegit config --global core.fscache true git config --global core.preloadindex true

You can silence this message by setting these recommended values.

You can allow depot_tools to automatically update your global
Git config to recommended settings by running:
$ git config --global depot-tools.allowGlobalGitConfig true

To suppress this warning and silence future recommendations, run:
$ git config --global depot-tools.allowGlobalGitConfig false
Running hooks: 74% (20/27) rc_win
________ running 'python3 src/third_party/depot_tools/download_from_google_storage.py --no_resume --no_auth --bucket chromium-browser-clang/rc -s src/build/toolchain/win/rc/win/rc.exe.sha1' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Running hooks: 85% (23/27)
________ running 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --quiet --bucket chromium-webrtc-resources src/resources' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them.
Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used.
To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment variable.
Running hooks: 88% (24/27) Generate component metadata for tests
________ running 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' in 'D:\Work_and_learn\Code\CPP\WebRTC\webrtc'
ϵͳ�Ҳ���ָ����·����
Error: Command 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' returned non-zero exit status 1 in D:\Work_and_learn\Code\CPP\WebRTC\webrtc
ϵͳҲָ·

Hook 'vpython3.bat src/testing/generate_location_tags.py --out src/testing/location_tags.json' took 11.00 secs

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Generating Visual Studio projects took 2949ms
Generating compile_commands took 241ms
Done. Made 1918 targets from 335 files in 10176ms
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=fals
e is_component_build=false is_clang=false rtc_include_tests=false rtc_use_h264=true use_rtti=true use_cus
tom_libcxx=false treat_warnings_as_errors=false"
Generating Visual Studio projects took 3951ms
Generating compile_commands took 180ms
Done. Made 1918 targets from 337 files in 13330ms
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\m77 --ide=vs2022
Generating Visual Studio projects took 5542ms
Generating compile_commands took 365ms
Done. Made 2304 targets from 359 files in 15843ms
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\m77 --ide=vs2022 --args=“is_clang = true is_debug = true target_cpu = "x64" proprietary_codecs = true rtc_build_examples = false rtc_build_tools = false rtc_enable_protobuf = false rtc_include_internal_audio_device = false rtc_include_pulse_audio = false rtc_include_tests = false rtc_libvpx_build_vp9 = false rtc_use_gtk = false rtc_use_h264 = true treat_warnings_as_errors = false use_aura = false use_custom_libcxx = false use_gold = false use_lld = false use_ozone = true use_rtti = true”
ERROR Need exactly one build directory to generate.
I expected something more like "gn gen out/foo"
You can also see "gn help gen".
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\m1 --ide=vs2022 --args=“is_clang = true is_debug = true target_cpu = "x64" proprietary_codecs = true rtc_build_examples = false rtc_build_tools = false rtc_enable_protobuf = false rtc_include_internal_audio_device = false rtc_include_pulse_audio = false rtc_include_tests = false rtc_libvpx_build_vp9 = false rtc_use_gtk = false rtc_use_h264 = true treat_warnings_as_errors = false use_aura = false use_custom_libcxx = false use_gold = false use_lld = false use_ozone = true use_rtti = true”
ERROR Need exactly one build directory to generate.
I expected something more like "gn gen out/foo"
You can also see "gn help gen".
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out/m1 --ide=vs2022 --args=“is_clang = true is_debug = true target_cpu = "x64" proprietary_codecs = true rtc_build_examples = false rtc_build_tools = false rtc_enable_protobuf = false rtc_include_internal_audio_device = false rtc_include_pulse_audio = false rtc_include_tests = false rtc_libvpx_build_vp9 = false rtc_use_gtk = false rtc_use_h264 = true treat_warnings_as_errors = false use_aura = false use_custom_libcxx = false use_gold = false use_lld = false use_ozone = true use_rtti = true”
ERROR Need exactly one build directory to generate.
I expected something more like "gn gen out/foo"
You can also see "gn help gen".
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=true target_os="win" target_cpu="x64" is_component_build=false is_clang=false use_lld=false treat_warnings_as_errors=false use_rtti=true rtc_include_tests=false rtc_build_examples=false"
Generating Visual Studio projects took 3870ms
Generating compile_commands took 142ms
Done. Made 1918 targets from 335 files in 11566ms
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>ninja -C out\Release-vs2022 -d stats >> out\Release-vs2022\comp.log
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>gn gen --ide=vs2022 out/test
Generating Visual Studio projects took 4209ms
Generating compile_commands took 250ms
Done. Made 2304 targets from 359 files in 12765ms
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>ninja -C out\test -d stats >> out\test\comp.log
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src>

现在我终于编译成功了webrtc静态库。以上分别是我在两个cmd窗口执行过的命令。请你将上面的命令进行总结然后整理为一份webrtc的编译文档

الفكرة

Reasoned for a few seconds

الإجابة

下面是一份基于你贴出的命令行操作,从拉取(fetch/gclient)到最终编译出 WebRTC 静态库的大致流程整理。由于你在尝试过程中换了好几种参数配置、也遇到过多次网络/环境问题,这里将核心步骤做一个清晰的归纳总结。你可以根据实际需要进行微调。


Windows 下编译 WebRTC 参考步骤

1. 准备环境

  1. 安装 Visual Studio 2022

    • 必须勾选“使用C++的桌面开发”或类似的 MSVC 工具组件,确认 vcvarsall.bat 等文件存在。
    • 假设安装路径为: D:\Software\Microsoft Visual Studio\2022\Community
  2. 安装 Python 3(如果你没有的话),并在 PATH 中可调用 pythonpython3

  3. 获取 depot_tools

    • 例如将 depot_tools clone 到 D:\Work_and_learn\Code\CPP\WebRTC\depot_tools
    • 确保把 depot_tools 路径加到环境变量 PATH,重启命令行生效。
  4. 配置代理(如需要)
    如果在国内,需要科学上网工具;并在命令行设置环境变量(示例):

    text
    set http_proxy=10.15.15.141:20172 set https_proxy=10.15.15.141:20172

    这样 fetchgclientgit clone 能走代理下载。


2. 拉取 WebRTC 源码

以下步骤在你准备好的空文件夹(例如 D:\Work_and_learn\Code\CPP\WebRTC\webrtc)下执行:

  1. fetch webrtc

    bash
    fetch --nohooks webrtc

    这会创建一个 .gclient 并克隆 webrtc.googlesource.com/srcwebrtc/src

  2. 初次同步

    bash
    gclient sync
    • 这一步可能会下载大量依赖(src/third_party 等),需要时间较长。
    • 如果网络不稳,会出现重复重试或超时错误,尽量确保最后能 100% done。
  3. (如果提示“找不到可用的 VS Toolchain”)显式使用本地VS

    • 按照报错提示,需要设置 DEPOT_TOOLS_WIN_TOOLCHAIN=0,这样会用你本机安装的 MSVC,而不是去谷歌云拉取编译器。

在成功后,你的目录结构大致是:

text
D:\Work_and_learn\Code\CPP\WebRTC ├─ depot_tools (你之前下载的) ├─ webrtc ├─ .gclient ├─ src ├─ build ├─ third_party ├─ ...

3. 设置环境变量(使 GN/MSVC 正常工作)

可以在命令行里执行(或写到脚本里):

bash
set GYP_MSVS_VERSION=2022 set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community set GYP_GENERATORS=msvs-ninja,ninja set DEPOT_TOOLS_WIN_TOOLCHAIN=0
  • 上面几行告诉 GN 用哪个版本的 VS 和 MSVC 工具链;DEPOT_TOOLS_WIN_TOOLCHAIN=0 禁用下载谷歌的预编译工具链。
  • 注意其中 vcvarsall.bat 必须能在 ...\Community\VC\ 路径下找到,否则说明没安装 C++ 工具集或路径设置不对。

4. 进入 src 并执行 gclient runhooks

如果前面 gclient sync 有提示某些 Hook 没跑完,可再次执行:

bash
cd D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src gclient runhooks
  • 如果报 vpython3.bat ... not found 之类错误,说明还需让 depot_tools 在你的 PATH 中,或者安装好 Python 并修复 vpython 问题。

如果有“下载 clang”之类的脚本,会在 runhooks 阶段执行;如果你 is_clang=true 就会用到 clang,否则不需要下载。


5. 生成 GN 工程文件 (gn gen)

你多次使用了不同参数进行测试,这里举例两种常见配置。

5.1 用 MSVC (cl.exe) + 关闭组件化

示例:

bash
cd D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src gn gen out\Release-vs2022 --ide=vs2022 --args=" \ is_debug=false \ target_os=\"win\" \ target_cpu=\"x64\" \ is_component_build=false \ is_clang=false \ use_lld=false \ treat_warnings_as_errors=false \ use_rtti=true \ rtc_include_tests=false \ rtc_build_examples=false"
  • is_clang=false:表示用 MSVC;
  • is_component_build=false:把代码链接成较少的几个大 .lib
  • 还可以加 use_custom_libcxx=false 以免拉取 libc++;
  • 如果要 debug,可把 is_debug=true

5.2 用 Clang (clang-cl) + 默认 libc++

若想用官方推荐 clang-cl,则:

bash
gn gen out\m1 --ide=vs2022 --args=" is_clang=true is_debug=true target_cpu=\"x64\" rtc_build_examples=false rtc_include_tests=false ... (根据需要再加) "

安装好 LLVM/Clang 后,这会生成 clang-cl + libc++ 风格的 .sln。

如果想裁剪功能,比如 rtc_use_h264=true / rtc_libvpx_build_vp9=false 等,都可以放进 args 里。


6. 编译

生成完后,你可以:

  1. 在命令行用 ninja
    bash
    ninja -C out\Release-vs2022
    会把默认的全部 target(“all”)都编译出来。
  2. 用 Visual Studio 打开
    • GN 在 out\Release-vs2022 下生成了 .sln (通常叫 all.sln 或者“default.sln”)。
    • 双击或用“打开项目”进入 VS;选择需要的项目 build。如果只生成了 resource_adaptation_api 等,说明只编译了对应子项目;想编完整就选 “全部生成” 或 “all”/“default” target。
  3. 查看编译产物
    • 大量 .obj.lib 会放在 out\Release-vs2022\obj\...
    • 如果 is_component_build=false,可能合并成少量大库。但也不一定是统一的 “webrtc.lib”;更多时候是拆分成 rtc_base.libmedia.libvideo_coding.lib 等。
    • 最终你在自己的工程中链接这些 .lib + 相应头文件,即可使用 WebRTC。

7. 常见问题

  1. 网络代理
    • CIPD、gsutil 并不一定直接读 http_proxy。一些下载脚本可能报“Anonymous caller does not have storage.objects.list...”。
    • 遇到类似,需要要么翻全局代理,要么配置 .boto 文件。官方文档或社区帖子有更多方案。
  2. VC++ 安装不完整
    • 如果报 Exception: ... vcvarsall.bat is missing,请打开 Visual Studio Installer 并确认已安装C++工作负载。
  3. “FileNotFoundError: ... LASTCHANGE.committime”
    • 说明 hooks 没完全跑完,gclient syncgclient runhooks 未生成 build/util/LASTCHANGE* 文件。再次 syncrunhooks 直到不再出错,才算成功。
  4. “vpython3.bat not found”
    • 需保证 depot_toolsPATH 中、Python3 安装正确;或者你可以手动把 vpython 安装并放到 PATH。

8. 你最终的操作示例

从你的命令历史可见:

  1. 设置代理 & fetch:
    bash
    set http_proxy=10.15.15.141:20172 set https_proxy=10.15.15.141:20172 fetch --nohooks webrtc gclient sync
  2. 禁用谷歌工具链、指定 VS2022 路径:
    bash
    set GYP_MSVS_VERSON=2022 set vs2022_install=D:\Software\Microsoft Visual Studio\2022\Community set GYP_MSVS_OVERRIDE_PATH=D:\Software\Microsoft Visual Studio\2022\Community set GYP_GENERATORS=msvs-ninja,ninja set DEPOT_TOOLS_WIN_TOOLCHAIN=0
  3. 进入 webrtc/src,可 gclient runhooks (若有必要),再 gn gen
    bash
    cd webrtc\src gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false ... rtc_include_tests=false rtc_build_examples=false"
  4. 用 ninja 编译 或者直接打开 .sln 编译:
    bash
    ninja -C out\Release-vs2022
    (或者在 VS 中点击“全部生成”)。

最终就得到 .lib 静态库文件。你在日志里看到 [31/31] LIB obj/rtc_base/checks.lib 等产物表示编译成功。


总结

这份流程主要给出了从 zero 到成功编译 WebRTC on Windows 的关键步骤:** fetch/gclient → 安装MSVC → 配置环境 → gn gen → ninja**。其中最常见的问题在于网络代理、vpython、VS 工具包缺失等。只要这些点都处理好,gclient sync + gn/ninja 基本就能编译成功。祝编译顺利!

سؤال

那么接下来请你写一段C++代码,让我测试一下我编译的WebRTC静态库。


cmake_minimum_required(VERSION 3.29)
project(WebRTCtest)

set(CMAKE_CXX_STANDARD 20)

add_executable(WebRTCtest main.cpp)

并在这个CMakeLists的基础上进行修改使其可以链接到WebRTC静态库

الفكرة

Setting up the project

I’m piecing together a C++ project with WebRTC, defining the CMakeLists for directory paths and libraries, and mentioning minimal code examples.

Setting up SSL

I’m pulling together the minimal code snippet for WebRTC, initializing and cleaning up SSL. This approach establishes a foundational understanding of both encryption and WebRTC integration.

Reasoned for 8 seconds

الإجابة

下面给出一个 最简示例,演示如何在自己的 C++ 项目中 调用到 WebRTC 的静态库。其中包含:

  1. main.cpp:演示性地使用到 WebRTC 中的一些函数(例如 SSL 初始化)。
  2. CMakeLists.txt:示例如何包含头文件目录、链接静态库等。

请注意,这只是一个非常简化的示例,实际项目中根据你所调用的 WebRTC 模块不同,需要额外包含更多头文件、链接更多静态库。


一、示例目录结构

你可以新建一个测试目录,示例结构如下(可自行调整):

text
WebRTCtest/ ├─ CMakeLists.txt └─ main.cpp

假设你的编译好的 WebRTC 库和头文件位于以下位置(仅示例):

  • 头文件根目录: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src
  • 静态库目录: D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\out\Release-vs2022\obj

请注意:

  • WebRTC 的 GN 生成后,头文件通常仍放在 srcsrc/apisrc/rtc_base 等目录。
  • .lib 文件分散在 out\Release-vs2022\obj\xxx\xxx.lib。根据你需要的模块来决定哪些要链接。
  • Windows 下常见需要链接的系统库,比如 ws2_32, winmm, secur32, 等,也要一起链接,否则会出现外部符号无法解析错误。

二、示例 main.cpp

下面这个示例做了两件事:

  1. 包含一些 WebRTC 头文件;
  2. 调用 rtc::InitializeSSL() / rtc::CleanupSSL() 来验证链接成功;
  3. 输出一句话供测试。
cpp
#include "rtc_base/ssl_adapter.h" // For rtc::InitializeSSL, rtc::CleanupSSL #include <iostream> int main() { // 初始化 WebRTC 的 SSL 相关内容 rtc::InitializeSSL(); std::cout << "Hello, WebRTC static library test!" << std::endl; // 清理 WebRTC 的 SSL 相关内容 rtc::CleanupSSL(); return 0; }

三、示例 CMakeLists.txt

以下是一个最简的 CMake 配置,演示如何包含头文件、链接 WebRTC 的静态库,以及一些 Windows 系统库。请根据你实际存放的路径、库名进行修改。

cmake
cmake_minimum_required(VERSION 3.29) project(WebRTCtest) set(CMAKE_CXX_STANDARD 20) # (1) 指定 WebRTC 头文件所在目录 (示例) set(WEBRTC_INCLUDE_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src") # (2) 指定 WebRTC 静态库所在目录 (示例) # 注意:很多 .lib 文件会放在 out/Release-vs2022/obj/xxx 下, # 你可能需要把这些路径都加进来,或者递归搜索。 set(WEBRTC_LIB_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/out/Release-vs2022/obj") # (3) 包含头文件 include_directories( ${WEBRTC_INCLUDE_DIR} ) # (4) 设置要链接的库目录 # 这里简单示例,如果你只需要部分库,可以分别 link_directories 或者直接用 target_link_libraries link_directories( ${WEBRTC_LIB_DIR} ) # (5) 新建可执行文件 add_executable(WebRTCtest main.cpp) # (6) 链接 WebRTC 所需的静态库 + Windows 系统库 # 下面的库名称可能跟你 out/Release-vs2022/obj 下出现的 .lib 文件名对应 target_link_libraries(WebRTCtest # === 以下示例:你最少需要 rtc_base, system_wrappers, 以及一些其他库。=== # 可根据实际 .lib 文件名进行增减。 rtc_base # 例如 out/Release-vs2022/obj/rtc_base/checks.lib rtc_event # ... system_wrappers # ... # ... # === Windows系统库示例 === ws2_32 secur32 winmm iphlpapi advapi32 user32 # 如果还有其他依赖,比如 dmoguids, msdmo 等,可继续添加 )

说明

  1. target_link_libraries 里写哪些具体的 .lib,要根据你调用的 WebRTC 模块来定。简单起见,这里示范 rtc_base, system_wrappers 等。如果编译过程中提示缺少符号,可以再补充更多 xxx.lib
  2. 如果你想一次性将 out/Release-vs2022/obj 目录下的所有 .lib 都链接,可以用更粗暴的方式:把 link_directories(...) 指向那儿,然后 target_link_libraries(WebRTCtest foo1 foo2 foo3 ...) 全部写上。这样会比较多余,也可能产生符号冲突,具体视需要而定。

四、编译 & 运行

  1. 进入该工程目录
    bash
    cd WebRTCtest
  2. 生成构建配置(Visual Studio 或者别的)
    • 如果要用 Visual Studio 编译:
      bash
      cmake -B build -G "Visual Studio 17 2022" .
      这会在 build 目录下生成 .sln 等工程文件。
    • 如果你喜欢直接用 Ninja:
      bash
      cmake -B build -G "Ninja" .
  3. 编译
    bash
    cmake --build build --config Release
    生成的可执行文件通常在 build/Release/WebRTCtest.exe(VS情形)或 build/WebRTCtest.exe(Ninja情形)。
  4. 运行测试
    bash
    cd build/Release ./WebRTCtest.exe
    或者用 VS 打开 build/WebRTCtest.sln,执行“生成→运行”。

若看到输出 Hello, WebRTC static library test! 且进程正常退出,说明已经成功链接到你的 WebRTC 静态库,能够正常调用其函数。


小结

以上就是一个 简单的 C++ + CMake 测试,用于验证你编译的 WebRTC 静态库是否可以被外部工程正常链接与调用。

  • 核心要点
    1. 包含 WebRTC 头文件(include_directories 指向 src/)。
    2. 链接编译好的 .lib 文件(link_directories + target_link_libraries)。
    3. 还需链接 Windows 的系统库(ws2_32, winmm, secur32等)以解决底层 Socket、加密等依赖。
  • 如果在编译或链接中出现未定义符号,说明可能还缺少对应 .lib 或系统库,可以在 target_link_libraries 里继续添加。

这样,你就可以测试并验证自己的 WebRTC 库编译成果了。祝你测试成功!

سؤال


====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
FAILED: CMakeFiles/WebRTCtest.dir/main.cpp.obj.ddi
"D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" -ID:\Work_and_learn\Code\CPP\WebRTC\webrtc\include /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++20 -MDd -Zi D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp -nologo -TP -showIncludes -scanDependencies CMakeFiles\WebRTCtest.dir\main.cpp.obj.ddi -FoCMakeFiles\WebRTCtest.dir\main.cpp.obj
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\rtc_base/ssl_adapter.h(17): fatal error C1083: 无法打开包括文件: “absl/strings/string_view.h”: No such file or directory
ninja: build stopped: subcommand failed.

运行的时候遇到了如上报错信息,这是什么问题?

الفكرة

Addressing include paths

OK, let me see. The issue seems to be with the include directory in the WebRTC code, which might be missing the absl directory. I’m working on ensuring the compiler can find the necessary headers.

Mapping out inclusion

Ensuring the absl directory is included correctly, I’m suggesting specific include paths in the WebRTC code to resolve the issue with "rtc_base/ssl_adapter.h".

Ensuring directory inclusion

I’m thinking about including the correct directory for absl headers, while noting that the project might need to incorporate other dependencies as well.

Ensuring accuracy

I’m confirming that the directory for absl headers, "D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp," must be included to resolve the issue with "rtc_base/ssl_adapter.h."

Reasoned for 23 seconds

الإجابة

根据报错信息:

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\rtc_base/ssl_adapter.h(17): fatal error C1083: 无法打开包括文件: “absl/strings/string_view.h”: No such file or directory

可以看出 编译器没能找到 absl/strings/string_view.h。这是因为 WebRTC 依赖了 Abseil,而它通常放在 webrtc/src/third_party/abseil-cpp/absl/...

如果你只在 CMake 中写了

include_directories("D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")

那么编译器并不会去 third_party/abseil-cpp 目录下寻找 “absl/strings/string_view.h”。从而导致无法打开文件的错误。


1. 原因与解决思路

  • WebRTC 源码分散在多个子目录,包括 src/, src/third_party/abseil-cpp/, src/rtc_base/, 等等。
  • 当某些头文件(例如 ssl_adapter.h)又 #include "absl/strings/string_view.h" 时,编译器必须在它的 -I 路径里找得到 absl/ 目录。
  • 也就是:需要将 “父目录” 加到 include 路径,这样“父目录”下的 absl/ 子目录就可以被找到。

因此,你需要把 WebRTC “src” 以及 “src/third_party/abseil-cpp” 这样的目录添加到 include_directories(...)target_include_directories(...) 中。


2. 示例修改

假设你的 WebRTC 源码在 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src,并且 Abseil 位于 .../src/third_party/abseil-cpp/absl/...,那么可以在 CMakeLists.txt 里做如下修改:

cmake
cmake_minimum_required(VERSION 3.29) project(WebRTCtest) set(CMAKE_CXX_STANDARD 20) # ---- 这里是你的 main.cpp ---- add_executable(WebRTCtest main.cpp) # 1) 包含 WebRTC 的头文件根目录,比如你之前用到的 "rtc_base/*.h" 等位于 src/ 下 # 注意要确保 "rtc_base"、"api" 等目录能被找到 include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src" ) # 2) 同时包含 abseil-cpp 所在目录 (它里面才有 absl/strings/string_view.h) include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp" ) # 3) 链接你的 WebRTC .lib # ... # target_link_libraries(WebRTCtest # rtc_base # system_wrappers # ws2_32 # ... # )

这样,当编译器遇到 #include "absl/strings/string_view.h" 时,会到 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp/ 下找 “absl/strings/string_view.h” 文件,就能正常包含。


3. 补充事项

  1. 可能还需要更多 include_directories

    • 比如如果有 boringssllibyuv、或别的 third_party 依赖,也要让编译器找得到它们。
    • 最简单的做法往往是:
      text
      include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src" "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party" "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp" # ... )
  2. 不同模块需要不同 .lib

    • 如果你调用了更多 WebRTC API(如 api/audio_codecs/...),还需要在 target_link_libraries 里加对应静态库。
    • 同时别忘了链接 Windows SDK 库(ws2_32, secur32, winmm 等),否则也会出现链接错误。
  3. CMake + WebRTC 的推荐方式

    • 通常官方推荐使用 GN + Ninja 直接在 WebRTC monorepo 内集成。
    • 但若你要手动在另一个 CMake 项目中使用 WebRTC 编译后的 .lib,需要自己补充好所有依赖的包含路径、链接库、以及编译定义。

小结

根本原因:WebRTC 内部依赖的 absl/strings/string_view.h 找不到,是因为 abseil-cpp 路径未加到编译器包含路径。
解决方法:在你的 CMakeLists.txt 增加相应的 include_directories(".../third_party/abseil-cpp")(或将包含 WebRTC 的顶层 src 目录,一并加上)即可。

سؤال


====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
FAILED: CMakeFiles/WebRTCtest.dir/main.cpp.obj.ddi
"D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" -ID:\Work_and_learn\Code\CPP\WebRTC\webrtc\include -ID:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\third_party\abseil-cpp /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++20 -MDd -Zi D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp -nologo -TP -showIncludes -scanDependencies CMakeFiles\WebRTCtest.dir\main.cpp.obj.ddi -FoCMakeFiles\WebRTCtest.dir\main.cpp.obj
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\rtc_base/byte_order.h(96): fatal error C1189: #error: "Missing byte order functions for this arch."
ninja: build stopped: subcommand failed.

这又是什么问题?

الفكرة

Investigating architecture macros

OK, let me see. The error from byte_order.h suggests a missing architecture detection macro, likely due to _MSC_VER, __GNUC__, or absence of defines like _WIN32.

Confirming configurations

Hmm, that's interesting. The error points to missing macros like WEBRTC_WIN or WEBRTC_LITTLE_ENDIAN, which WebRTC needs to identify the endianness of the architecture correctly.

Replicating compile flags

I’m thinking through the need to mimic GN compile-time defines for Windows builds, like setting WEBRTC_WIN and WIN32_LEAN_AND_MEAN, to ensure WebRTC detects the architecture correctly.

Reasoned for 9 seconds

الإجابة

出现

D:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\rtc_base/byte_order.h(96): fatal error C1189: #error:  "Missing byte order functions for this arch."

说明 WebRTC 的源码检测不到你当前平台的大小端 / 架构定义,从而直接 #error “Missing byte order functions for this arch.”。这是因为 WebRTC 在其编译流程中通常依赖一系列预定义宏(如 WEBRTC_WIN_WIN32_WINNT=0x0A00WEBRTC_ARCH_64_BITSWEBRTC_LITTLE_ENDIAN 等),来识别目标平台并启用相应的字节序函数。如果在手动用 CMake 编译时没有带上这些宏定义,rtc_base/byte_order.h 就无法判断系统是小端还是大端,最终抛出这个错误。


1. 为什么官方 GN 构建不会报这个错误?

  • 当你用 GN + Ninja 在官方的 WebRTC/Chromium环境编译时,GN 脚本会自动加上一堆 -DWEBRTC_WIN -DWIN32_LEAN_AND_MEAN -DWEBRTC_LITTLE_ENDIAN ... 等编译选项。
  • 而你自己用纯手动 CMake 方式时,这些宏没有自动带上,导致 #if 分支匹配失败。

2. 如何解决?

方法 A:在 CMake 中添加必要的编译定义

可以在 CMakeLists.txt 里,给你的目标或全局添加类似:

cmake
# 对应 Windows + x64 + 小端 add_definitions( -DWEBRTC_WIN -DWIN32_LEAN_AND_MEAN -DNOMINMAX -DWEBRTC_LITTLE_ENDIAN -DWEBRTC_ARCH_64_BITS # 如果你是64位编译 -D_WIN32_WINNT=0x0A00 # WebRTC/Chromium对 Windows 10 的要求 # ... 还可以加其他 _CRT_SECURE_NO_WARNINGS 等 )

这样,byte_order.h 就能识别到你是 Windows + 小端 + 64 位环境,然后正常编译通过。

方法 B:参照官方 GN 的编译标志

你也可以去查看 WebRTC 的 GN 构建中带给 cl.exe 的完整参数(例如在 out/Release-vs2022/args.gn 或编译时的命令行),把其中一些关键宏用 -Dxxx 的形式加到你的 CMake 工程里。

常见的 Windows 下 WebRTC 宏有:

  • WEBRTC_WIN
  • NOMINMAX
  • _WIN32_WINNT=0x0A00
  • WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP(有时需要)
  • WEBRTC_LITTLE_ENDIAN / WEBRTC_ARCH_64_BITS
  • _CRT_NONSTDC_NO_WARNINGS / _CRT_SECURE_NO_WARNINGS / _SCL_SECURE_NO_WARNINGS
  • 以及可能的一些内部控制宏

至少把关于“架构”、“大小端”和“WEBRTC_WIN”的几个加上,就能避免 "Missing byte order functions for this arch." 错误。


3. 小结

  • 根本原因:WebRTC 在 Windows + x86_64 环境下,默认通过一堆 -DWEBRTC_WIN -DWEBRTC_LITTLE_ENDIAN -DWEBRTC_ARCH_64_BITS 宏来启用正确的字节序函数;你现在的 CMake 工程没定义这些宏,导致 byte_order.h 不知道你是啥平台,就 #error
  • 解决方案:在 CMakeLists.txt 里添加对应的编译定义即可。

这样就能让 rtc_base/byte_order.h 正确检测到你的编译平台,不再报 “Missing byte order functions”。

سؤال

====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[0/1] Re-running CMake...
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: D:/Work_and_learn/Code/CPP/CPPWork/WebRTCtest/cmake-build-debug
[1/4] Generating CXX dyndep file CMakeFiles\WebRTCtest.dir\CXX.dd
[2/3] Linking CXX executable WebRTCtest.exe
FAILED: WebRTCtest.exe
C:\WINDOWS\system32\cmd.exe /C "cd . && "D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\WebRTCtest.dir --rc=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\mt.exe --manifests -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe" /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\WebRTCtest.dir/intermediate.manifest CMakeFiles\WebRTCtest.dir/manifest.res" failed (exit code 1120) with the following output:
LINK : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
webrtc.lib(rtc_certificate.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(async_dns_resolver.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(physical_socket_server.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(platform_thread.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(net_helpers.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(charconv_bigint.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(crypto_random.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(message_digest.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(openssl_key_pair.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(boringssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(sequence_checker_internal.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(string_encode.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(ssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(logging.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(boringssl_identity.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(thread.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(openssl_session_cache.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(checks.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ) webrtc.lib(pending_task_safety_flag.obj) : error LNK2001: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@XZ)
webrtc.lib(platform_thread.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(charconv_bigint.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(async_dns_resolver.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(base64.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(physical_socket_server.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(spake2plus.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(dtls_record.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(match.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ascii.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(openssl_digest.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_transcript.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(t1_enc.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(tls13_server.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(crypto_random.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(message_digest.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_asn1.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(tls13_enc.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(s3_lib.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_credential.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(openssl_key_pair.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(pem_lib.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(sequence_checker_internal.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(string_encode.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(string_utils.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(numbers.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_aead_ctx.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(tls13_client.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_privkey.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(encrypted_client_hello.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(tls13_both.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(d1_both.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_key_share.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(extensions.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(handshake_client.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(handshake_server.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(s3_both.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(handshake.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(boringssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(socket.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_cipher.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_cert.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(d1_lib.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(thread.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(string_builder.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(async_socket.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(logging.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(boringssl_identity.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_session.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(ssl_lib.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(openssl_session_cache.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(checks.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::__Cr::__libcpp_verbose_abort(char const *,...)" (?__libcpp_verbose_abort@__Cr@std@@YAXPEBDZZ)
webrtc.lib(openssl_adapter.obj) : error LNK2019: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *,unsigned __int64)" (?__assign_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD_K@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::assign(char const *,unsigned __int64)" (?assign@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) 中引用了该符号
webrtc.lib(rtc_certificate.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(async_dns_resolver.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(platform_thread.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(net_helpers.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(string_utils.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(openssl_key_pair.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(thread.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(sequence_checker_internal.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(string_encode.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(openssl_session_cache.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(logging.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(boringssl_identity.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(char const *,unsigned __int64)" (?__init@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(base64.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z) webrtc.lib(charconv_bigint.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z)
webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z) webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z)
webrtc.lib(crypto_random.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z) webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::push_back(char)" (?push_back@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAXD@Z)
webrtc.lib(openssl_adapter.obj) : error LNK2019: 无法解析的外部符号 "void __cdecl std::terminate(void)" (?terminate@std@@YAXXZ),函数 "public: static void __cdecl absl::internal_any_invocable::Impl<void __cdecl(void)&& >::InvokedAfterMove(union absl::internal_any_invocable::TypeErasedState *)" (?InvokedAfterMove@?Impl@$$A8@@EHAAXXZ@internal_any_invocable@absl@@SAXPEATTypeErasedState@23@@Z) 中引用了该符号 webrtc.lib(thread.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::terminate(void)" (?terminate@std@@YAXXZ) webrtc.lib(async_dns_resolver.obj) : error LNK2001: 无法解析的外部符号 "void __cdecl std::terminate(void)" (?terminate@std@@YAXXZ) webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z)
webrtc.lib(physical_socket_server.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z)
webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z)
webrtc.lib(checks.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) webrtc.lib(logging.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z)
webrtc.lib(sequence_checker_internal.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *,unsigned __int64)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD_K@Z) webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(platform_thread.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(openssl_adapter.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(boringssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z)
webrtc.lib(ssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init_copy_ctor_external(char const *,unsigned __int64)" (?__init_copy_ctor_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAXPEBD_K@Z) webrtc.lib(openssl_adapter.obj) : error LNK2019: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_no_alias<1>(char const *,unsigned __int64)" (??__assign_no_alias@00@?00@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV012@PEBD_K@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::operator=(class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &)" (??4?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV012@AEBV012@@Z) 中引用了该符号 webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_no_alias<1>(char const *,unsigned __int64)" (??__assign_no_alias@00@?00@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV012@PEBD_K@Z)
webrtc.lib(openssl_adapter.obj) : error LNK2019: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_no_alias<0>(char const *,unsigned __int64)" (??__assign_no_alias@0A@@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV012@PEBD_K@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::operator=(class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &)" (??4?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV012@AEBV012@@Z) 中引用了该符号
webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_no_alias<0>(char const *,unsigned __int64)" (??__assign_no_alias@0A@@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV012@PEBD_K@Z) webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z)
webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z) webrtc.lib(ssl_fingerprint.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z)
webrtc.lib(checks.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z) webrtc.lib(thread.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z)
webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z) webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(char const *)" (?append@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@PEBD@Z)
webrtc.lib(crypto_random.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z) webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z)
webrtc.lib(base64.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z) webrtc.lib(checks.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z)
webrtc.lib(string_builder.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z) webrtc.lib(event_tracer.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z)
webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::resize(unsigned __int64,char)" (?resize@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_KD@Z) webrtc.lib(logging.obj) : error LNK2019: 无法解析的外部符号 "public: int __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::compare(unsigned __int64,unsigned __int64,char const *,unsigned __int64)const " (?compare@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEBAH_K0PEBD0@Z),函数 "bool __cdecl std::__Cr::operator==<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &,char const *)" (???8DU??8DU?char_traits@D@__Cr@std@@V?allocator@D@12@@__Cr@std@@YA_NAEBV?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@01@PEBD@Z) 中引用了该符号
webrtc.lib(logging.obj) : error LNK2019: 无法解析的外部符号 "class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl std::__Cr::operator+<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(char const *,class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &)" (???HDU??HDU?char_traits@D@__Cr@std@@V?allocator@D@12@@__Cr@std@@YA?AV?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@01@PEBDAEBV201@@Z),函数 "public: virtual void __cdecl rtc::LogSink::OnLogMessage(class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &,enum rtc::LoggingSeverity,char const *)" (?OnLogMessage@LogSink@rtc@@UEAAXAEBV?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@W4LoggingSeverity@2@PEBD@Z) 中引用了该符号 webrtc.lib(ssl_identity.obj) : error LNK2001: 无法解析的外部符号 "class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl std::__Cr::operator+<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(char const *,class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &)" (???HDU?char_traits@D@__Cr@std@@V?allocator@D@12@@__Cr@std@@YA?AV?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@01@PEBDAEBV201@@Z) webrtc.lib(logging.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::insert(unsigned __int64,char const *)" (?insert@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_KPEBD@Z),函数 "class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl std::__Cr::operator+<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(char const *,class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > &&)" (???HDU??HDU?char_traits@D@__Cr@std@@V?allocator@D@12@@__Cr@std@@YA?AV?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@01@PEBD$$QEAV201@@Z) 中引用了该符号
webrtc.lib(socket_address.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::insert(unsigned __int64,char const *)" (?insert@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_KPEBD@Z) webrtc.lib(ip_address.obj) : error LNK2001: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::insert(unsigned __int64,char const *)" (?insert@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_KPEBD@Z)
webrtc.lib(logging.obj) : error LNK2019: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__erase_external_with_move(unsigned __int64,unsigned __int64)" (?__erase_external_with_move@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAX_K0@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::erase(unsigned __int64,unsigned __int64)" (?erase@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_K0@Z) 中引用了该符号
webrtc.lib(ascii.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__erase_external_with_move(unsigned __int64,unsigned __int64)" (?__erase_external_with_move@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAX_K0@Z) webrtc.lib(physical_socket_server.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *)" (?__assign_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD@Z)
webrtc.lib(logging.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *)" (?__assign_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD@Z) webrtc.lib(boringssl_certificate.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *)" (?__assign_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD@Z)
webrtc.lib(openssl_digest.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *)" (?__assign_external@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD@Z) webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "private: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__assign_external(char const *)" (?__assign_external@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAAEAV123@PEBD@Z)
webrtc.lib(socket_address.obj) : error LNK2019: 无法解析的外部符号 "class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl std::__Cr::to_string(int)" (?to_string@__Cr@std@@YA?AV?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@12@H@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl webrtc::SocketAddress::PortAsString(void)const " (?PortAsString@SocketAddress@webrtc@@QEBA?AV?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@XZ) 中引用了该符号
webrtc.lib(string_encode.obj) : error LNK2019: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(unsigned __int64,char)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAX_KD@Z),函数 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(unsigned __int64,char)" (??0?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@_KD@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "private: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::__init(unsigned __int64,char)" (?__init@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@AEAAX_KD@Z) webrtc.lib(ssl_identity.obj) : error LNK2019: 无法解析的外部符号 "public: __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > const &,unsigned __int64,unsigned __int64,class std::__Cr::allocator<char> const &)" (??0?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAA@AEBV012@_K1AEBV?allocator@D@12@@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::substr(unsigned __int64,unsigned __int64)const " (?substr@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEBA?AV123@_K0@Z) 中引用了该符号
webrtc.lib(event_tracer.obj) : error LNK2019: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::reserve(unsigned __int64)" (?reserve@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_K@Z),函数 "public: void __cdecl rtc::tracing::`anonymous namespace'::EventLogger::Log(void)" (?Log@EventLogger@?A0x1583959E@tracing@rtc@@QEAAXXZ) 中引用了该符号 webrtc.lib(crypto_random.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::reserve(unsigned __int64)" (?reserve@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_K@Z)
webrtc.lib(base64.obj) : error LNK2001: 无法解析的外部符号 "public: void __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::reserve(unsigned __int64)" (?reserve@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAX_K@Z) webrtc.lib(ip_address.obj) : error LNK2019: 无法解析的外部符号 "public: unsigned __int64 __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::rfind(char,unsigned __int64)const " (?rfind@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEBA_KD_K@Z),函数 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl webrtc::IPAddress::ToSensitiveString(void)const " (?ToSensitiveString@IPAddress@webrtc@@QEBA?AV?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@XZ) 中引用了该符号 webrtc.lib(crypto_random.obj) : error LNK2019: 无法解析的外部符号 "public: char & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::at(unsigned __int64)" (?at@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAD_K@Z),函数 "bool __cdecl rtc::CreateRandomData(unsigned __int64,class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > *)" (?CreateRandomData@rtc@@YA_N_KPEAV?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > & __cdecl std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> >::operator<<(unsigned __int64)" (??6?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEAAAEAV012@_K@Z),函数 "class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > __cdecl absl::`anonymous namespace'::Uint128ToFormattedString(class A0x803450F2::uint128,unsigned int)" (?Uint128ToFormattedString@?A0x803450F2@absl@@YA?AV?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@Vuint128@1@I@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::append(unsigned __int64,char)" (?append@?basicstring@DU?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_KD@Z),函数 "class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > & __cdecl absl::operator<<(class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > &,class absl::uint128)" (??6absl@@YAAEAV?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@AEAV123@Vuint128@0@@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> > & __cdecl std::__Cr::basic_string<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::insert(unsigned __int64,unsigned __int64,char)" (?insert@?basic_string@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@QEAAAEAV123@_K0D@Z),函数 "class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > & __cdecl absl::operator<<(class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > &,class absl::uint128)" (??6absl@@YAAEAV?basicostream@DU?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@AEAV123@Vuint128@0@@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: virtual __cdecl std::__Cr::basic_ios<char,struct std::__Cr::char_traits<char> >::~basic_ios<char,struct std::__Cr::char_traits<char> >(void)" (??1?basicios@DU?basic_ios@DU?char_traits@D@__Cr@std@@@__Cr@std@@UEAA@XZ),函数 "public: void __cdecl std::__Cr::basic_ostringstream<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::vbase destructor'(void)" (??_D?$basic_ostringstream@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@QEAAXXZ) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "protected: __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::basic_streambuf<char,struct std::__Cr::char_traits<char> >(void)" (??0?$basic_streambuf@DU?$char_traits@D@__Cr@std@@@__Cr@std@@IEAA@XZ),函数 "public: __cdecl std::__Cr::basic_stringbuf<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::basic_stringbuf<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(unsigned int)" (??0?$basic_stringbuf@DU?$char_traits@D@__Cr@std@@V?$allocator@D@23@@__Cr@std@@QEAA@I@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: virtual __cdecl std::__Cr::ios_base::~ios_base(void)" (??1ios_base@__Cr@std@@UEAA@XZ),函数 "public: virtual void * __cdecl std::__Cr::ios_base::scalar deleting destructor'(unsigned int)" (??_Gios_base@__Cr@std@@UEAAPEAXI@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "protected: void __cdecl std::__Cr::ios_base::init(void *)" (?init@ios_base@__Cr@std@@IEAAXPEAX@Z),函数 "protected: void __cdecl std::__Cr::basic_ios<char,struct std::__Cr::char_traits<char> >::init(class std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> > *)" (?init@?basicios@DU?basic_ios@DU?char_traits@D@__Cr@std@@@__Cr@std@@IEAAXPEAV?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@23@@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: virtual __cdecl std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> >::~basic_ostream<char,struct std::__Cr::char_traits<char> >(void)" (??1?basicostream@DU?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@UEAA@XZ),函数 "public: void __cdecl std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> >::`vbase destructor'(void)" (??_D?basicostream@DU?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEAAXXZ) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: virtual __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::~basic_streambuf<char,struct std::__Cr::char_traits<char> >(void)" (??1?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@UEAA@XZ),函数 "public: virtual __cdecl std::__Cr::basic_stringbuf<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >::~basic_stringbuf<char,struct std::__Cr::char_traits<char>,class std::__Cr::allocator<char> >(void)" (??1?basicstringbuf@DU?basic_stringbuf@DU?char_traits@D@__Cr@std@@V?allocator@D@23@@__Cr@std@@UEAA@XZ) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::locale __cdecl std::__Cr::ios_base::getloc(void)const " (?getloc@ios_base@__Cr@std@@QEBA?AVlocale@23@XZ),函数 "public: char __cdecl std::__Cr::basic_ios<char,struct std::__Cr::char_traits<char> >::widen(char)const " (?widen@?basic_ios@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEBADD@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: __cdecl std::__Cr::locale::~locale(void)" (??1locale@__Cr@std@@QEAA@XZ),函数 "public: char __cdecl std::__Cr::basic_ios<char,struct std::__Cr::char_traits<char> >::widen(char)const " (?widen@?basic_ios@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEBADD@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: static class std::__Cr::locale::id std::__Cr::ctype<char>::id" (?id@?ctype@D@__Cr@std@@2V0locale@23@A),函数 "class std::__Cr::ctype<char> const & __cdecl std::__Cr::use_facet<class std::__Cr::ctype<char> >(class std::__Cr::locale const &)" (??usefacet@V?use_facet@V?ctype@D@__Cr@std@@@__Cr@std@@YAAEBV?ctype@D@01@AEBVlocale@01@@Z) 中引用了该符号 webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "private: class std::__Cr::locale::facet const * __cdecl std::__Cr::locale::use_facet(class std::__Cr::locale::id &)const " (?use_facet@locale@__Cr@std@@AEBAPEBVfacet@123@AEAVid@123@@Z),函数 "class std::__Cr::ctype<char> const & __cdecl std::__Cr::use_facet<class std::__Cr::ctype<char> >(class std::__Cr::locale const &)" (??use_facet@V?ctype@D@__Cr@std@@@__Cr@std@@YAAEBV?ctype@D@01@AEBVlocale@01@@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > & __cdecl std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> >::flush(void)" (?flush@?basicostream@DU?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEAAAEAV123@XZ),函数 "public: __cdecl std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> >::sentry::sentry(class std::__Cr::basic_ostream<char,struct std::__Cr::char_traits<char> > &)" (??0sentry@?basicostream@DU?basic_ostream@DU?char_traits@D@__Cr@std@@@__Cr@std@@QEAA@AEAV123@@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2019: 无法解析的外部符号 "public: void __cdecl std::__Cr::ios_base::clear(unsigned int)" (?clear@ios_base@__Cr@std@@QEAAXI@Z),函数 "public: void __cdecl std::__Cr::ios_base::setstate(unsigned int)" (?setstate@ios_base@__Cr@std@@QEAAXI@Z) 中引用了该符号
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual void __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::imbue(class std::__Cr::locale const &)" (?imbue@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAAXAEBVlocale@23@@Z)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual class std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> > * __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::setbuf(char *,__int64)" (?setbuf@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAAPEAV123@PEAD_J@Z)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual int __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::sync(void)" (?sync@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAAHXZ)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::showmanyc(void)" (?showmanyc@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAA_JXZ)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::xsgetn(char *,__int64)" (?xsgetn@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAA_JPEAD_J@Z)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual int __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::uflow(void)" (?uflow@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAAHXZ)
webrtc.lib(int128.obj) : error LNK2001: 无法解析的外部符号 "protected: virtual __int64 __cdecl std::__Cr::basic_streambuf<char,struct std::__Cr::char_traits<char> >::xsputn(char const *,__int64)" (?xsputn@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@__Cr@std@@@__Cr@std@@MEAA_JPEBD_J@Z)
webrtc.lib(physical_socket_server.obj) : error LNK2019: 无法解析的外部符号 "unsigned __int64 __cdecl std::__Cr::__next_prime(unsigned __int64)" (?__next_prime@__Cr@std@@YA_K_K@Z),函数 "private: void __cdecl std::__Cr::__hash_table<struct std::__Cr::__hash_value_type<unsigned __int64,class rtc::Dispatcher *>,class std::__Cr::__unordered_map_hasher<unsigned __int64,struct std::__Cr::__hash_value_type<unsigned __int64,class rtc::Dispatcher *>,struct std::__Cr::hash<unsigned __int64>,struct std::__Cr::equal_to<unsigned __int64>,1>,class std::__Cr::__unordered_map_equal<unsigned __int64,struct std::__Cr::__hash_value_type<unsigned __int64,class rtc::Dispatcher *>,struct std::__Cr::equal_to<unsigned __int64>,struct std::__Cr::hash<unsigned __int64>,1>,class std::__Cr::allocator<struct std::__Cr::__hash_value_type<unsigned __int64,class rtc::Dispatcher *> > >::__rehash<1>(unsigned __int64)" (??__rehash@00@?__hash_table@U?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@V?__unordered_map_hasher@_KU?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@U?hash@K@23@U?hash@_K@23@U?equal_to@_K@23@00@23@V?00@23@V?__unordered_map_equal@_KU?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@U?equal_to@_K@23@U?hash@K@23@hash@_K@23@00@23@V?allocator@U?allocator@U?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@@23@@__Cr@std@@AEAAX_K@Z) 中引用了该符号
WebRTCtest.exe : fatal error LNK1120: 46 个无法解析的外部命令
ninja: build stopped: subcommand failed.

这又是什么问题?

الفكرة

Analyzing standard library mismatches

I’m noting that the error indicates a mismatch between std::__Cr::string from libc++ and MSVC's LIBC, likely due to WebRTC's compilation with clang-cl + libc++ and linking with MSVC's default LIBC.

Identifying the issue

The problem arises from a mismatch between the standard libraries used by WebRTC and MSVC, causing link errors due to ABI differences.

Aligning build environments

To resolve the error, the user should either compile with the same toolchain and library as WebRTC (clang-cl + libc++) or ensure consistent runtime libraries and macros with MSVC.

Addressing mismatch

The error likely stems from mixing debug and release modes, or from using libc++ in WebRTC versus MSVC's default STL, leading to link conflicts.

Zeroing in on compile flags

It's becoming clear that mismatched compile flags (e.g., /MD, /MT, /MDd, /MTd) between WebRTC and the user's code are likely causing the link errors.

Aligning runtime uses

It's clear that to address link errors, the user should compile their application with the same CRT, standard library, and compiler that WebRTC was built with, to ensure all symbols align correctly.

Aligning build configurations

To fix the unresolved external symbol error, align the app's build with WebRTC's: use the same compiler, standard library, and debug or release mode to ensure consistent runtime libraries.

Reasoned for 23 seconds

الإجابة

从这份庞大的链接错误日志可以看出,你现在遇到的是 C++ 运行时库 / ABI 不匹配 的问题。也就是:

  • 你的 “webrtc.lib” 是在一种编译配置(例如 Clang + libc++ 或者 MSVC /MT Release 等)下构建的;
  • 而你自己在 CMake 工程中编译测试程序时,使用了另一种配置(例如 MSVC /MDd Debug、或者根本没有链接 libc++ 而默认用 MSVC STL)。

结果导致所有对 std::__Cr::basic_string__libcpp_verbose_abortstd::terminate 等符号的引用无法解析,因为它们来自不同的运行时 / 标准库或不同模式(Debug/Release、/MD vs /MT)。


1. 具体表象

1) 链接冲突 / 库混用

日志里出现了类似:

LINK : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  • “libcmtd.lib” 是 Debug + 静态 的 MSVC 运行时库,但你的 webrtc.lib 里却依赖的是另一种运行时/标准库(可能是 release 版的 libc++/msvcrt 等)。
  • 这就直接说明了运行时库不一致:一个是 Debug 静态库、另一个是 Release 或动态库。

2) 大量 “无法解析的外部符号” 与 std::__Cr::... 命名

  • std::__Cr” 这样的命名空间,往往是 Chromium/Libc++ 中自定义改动过的符号(Chromium 对 libc++ 做了一些定制)。
  • 你的测试程序如果默认用 MSVC STL (/MD 或 /MDd),就无法解析这些 libc++ 符号。

或在相反情况下,如果 webrtc.lib 是用 MSVC STL 编译,而你却加了 use_custom_libcxx=true,同样也会冲突。


2. 为什么会出现

在 WebRTC/Chromium 体系里,官方默认在 Windows 上倾向用 clang-cl + libc++ 或特定的 MSVC 设置,并通过 GN 参数 (use_custom_libcxx=true/false, is_debug, is_clang, runtime_library=static_library/dynamic_library 之类) 来统一运行时环境。

如果你自己编译 WebRTC 时选的是 “is_clang=false is_component_build=false”,却发现最终出来的 webrtc.lib 里依然引用了 std::__Cr::...,很可能还有别的 GN 设置导致它仍启用了 libc++;或者你把 Release 版 webrtc.lib 与 Debug 版工程混用;或者还存在 /MT vs /MD 不匹配。

结果就是:编译好的 webrtc.lib 里使用了某个特定的 C++ 运行时/标准库;而你的 CMake 测试工程又使用了另一种 → 链接报一堆未定义符号。


3. 如何解决

要让两边的 编译配置运行时库 保持一致。下面几点是常见做法:

  1. 在 Release 模式编译并链接

    • 如果你编译 WebRTC 用的 GN 参数里 is_debug=false,那 webrtc.lib 就是 Release 版本。
    • 那么你的 CMake 工程也应当选 Release 模式编译 (-DCMAKE_BUILD_TYPE=Release 或在 IDE 里选 Release)。否则 Debug vs Release 运行时不匹配,会出现 LNK4098 冲突。
  2. 在 Debug 模式下统一

    • 如果你想要 Debug 版 webrtc.lib,就要在 GN 里设置 is_debug=true 并重新编译;然后你自己的 CMake 工程也用 Debug 模式 (/MDd) 连接它。
    • 这样同为 Debug 的 CRT/库就不会冲突。
  3. 相同的 /MD 或 /MT 选项

    • WebRTC/Chromium 常用 动态 CRT (/MD / /MDd);也可能用 静态 CRT (/MT / /MTd)。
    • 你需要在 CMake 里让你的工程同样使用 /MD(或/MDd) 或 /MT(或/MTd)。若 mismatch,就会出现一堆 link 错误。
  4. 若 webrtc.lib 使用了 libc++

    • 可能要链接 libc++ 库(c++_static.lib 或类似);或 GN 中设置 use_custom_libcxx=false 以改用 MSVC STL,重新编译 WebRTC,使之与 MSVC 工程兼容。
    • 如果你确定 “我用 MSVC cl.exe + MSVC STL”,就要保证 GN 里 is_clang=false + use_custom_libcxx=false + treat_warnings_as_errors=false + 选对 /MD or /MT。这样产生的 webrtc.lib 才是 MSVC STL 版本,没有“std::__Cr”符号。

4. 建议思路

  1. 重编译 WebRTC

    • 确定你要用 MSVC (cl.exe) + MSVC STL + 动态 CRT (/MD) + Release 模式 (或 Debug,选一个)。
    • GN 参数示例:
      bash
      gn gen out\Release-msvc --args=" is_clang=false is_debug=false use_custom_libcxx=false # 让其用 /MD (默认), is_component_build=false ... rtc_include_tests=false rtc_build_examples=false ... "
    • 然后 ninja -C out\Release-msvc 得到 webrtc.lib 等文件。
  2. 在 CMake 工程中

    • 选择同样的 Release + /MD 模式;
    • 在 VS 或 Clion 里,把配置设置为 “Release”,不要用 Debug;
    • 如果还报 libcmtd.lib 冲突,说明你还在用 Debug CRT,请切换到 Release CRT (/MD);或者把 webrtc 也编成 debug /MDd。
  3. 确认无“__Cr::”符号

    • 如果要彻底不使用 libc++ 定制,你也可以检查 GN log 看有没有 “libc++” 相关选项;确保 'use_custom_libcxx=false''is_clang=false'
    • 编译完成后,你可以用 dumpbin /symbols webrtc.lib 或用 strings webrtc.lib 看是否仍有 __Cr / __libcpp_verbose_abort 符号。

5. 小结

本质就是“编译和链接两端的C++运行时不匹配”,导致大量“无法解析外部符号”。最常见场景包括:

  • 你编译 WebRTC 用的是 Release + clang + libc++,而测试程序用的是 Debug + MSVC STL (/MDd);
  • 或 WebRTC 用 /MT 静态CRT,但测试程序默认 /MD 动态CRT。
  • 或 WebRTC 本身启用了 use_custom_libcxx=true,但你没有链接 libc++;等等。

解法:让两边统一:同一个编译器、同一个模式 (Release vs Debug)、同一个 CRT (/MD vs /MT)、同一个标准库 (MSVC STL vs libc++). 一般只要你用 Release + MSVC 同时 WebRTC 也是 Release + MSVC (use_custom_libcxx=false),就不会再有上述大串链接错误了。

سؤال

"
gn gen out\test4 --ide=vs2022 --args="is_debug=true use_custom_libcxx=false"
ninja -C out\test4 -d stats >> out\test4\comp.log
"

这次我通过如上两条命令对WebRTC进行编译

cmake_minimum_required(VERSION 3.29)
project(WebRTCtest)

#set(CMAKE_BUILD_TYPE Release)

set(CMAKE_CXX_STANDARD 20)

add_definitions(
-DWEBRTC_WIN
-DWIN32_LEAN_AND_MEAN
-DNOMINMAX
-DWEBRTC_LITTLE_ENDIAN
-DWEBRTC_ARCH_64_BITS # 如果你是64位编译
-D_WIN32_WINNT=0x0A00 # WebRTC/Chromium对 Windows 10 的要求
# ... 还可以加其他 _CRT_SECURE_NO_WARNINGS 等
)

(1) 指定 WebRTC 头文件所在目录 (示例)

set(WEBRTC_INCLUDE_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")

(2) 指定 WebRTC 静态库所在目录 (示例)

注意:很多 .lib 文件会放在 out/Release-vs2022/obj/xxx 下,

你可能需要把这些路径都加进来,或者递归搜索。

set(WEBRTC_LIB_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/lib")

(3) 包含头文件

include_directories(
${WEBRTC_INCLUDE_DIR}
)

2) 同时包含 abseil-cpp 所在目录 (它里面才有 absl/strings/string_view.h)

include_directories(
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include/third_party/abseil-cpp"
)

(4) 设置要链接的库目录

这里简单示例,如果你只需要部分库,可以分别 link_directories 或者直接用 target_link_libraries

link_directories(
${WEBRTC_LIB_DIR}
)

(5) 新建可执行文件

add_executable(WebRTCtest main.cpp)

(6) 链接 WebRTC 所需的静态库 + Windows 系统库

下面的库名称可能跟你 out/Release-vs2022/obj 下出现的 .lib 文件名对应

target_link_libraries(WebRTCtest
# === 以下示例:你最少需要 rtc_base, system_wrappers, 以及一些其他库。===
# 可根据实际 .lib 文件名进行增减。
webrtc

text
# === Windows系统库示例 === ws2_32 secur32 winmm iphlpapi advapi32 user32 # 如果还有其他依赖,比如 dmoguids, msdmo 等,可继续添加

)

CMakeLists如上所示,代码还是你给的测试代码

====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
FAILED: CMakeFiles/WebRTCtest.dir/main.cpp.obj.ddi
"D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\cl.exe" -DNOMINMAX -DWEBRTC_ARCH_64_BITS -DWEBRTC_LITTLE_ENDIAN -DWEBRTC_WIN -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0A00 -ID:\Work_and_learn\Code\CPP\WebRTC\webrtc\include -ID:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\third_party\abseil-cpp /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++20 -MDd -Zi D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp -nologo -TP -showIncludes -scanDependencies CMakeFiles\WebRTCtest.dir\main.cpp.obj.ddi -FoCMakeFiles\WebRTCtest.dir\main.cpp.obj
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\include\third_party\abseil-cpp\absl/numeric/int128.h(1196): fatal error C1083: 无法打开包括文件: “absl/numeric/int128_no_intrinsic.inc”: No such file or directory
ninja: build stopped: subcommand failed.

这是现在运行的报错信息,请你分析问题所在并给出解决方案

الفكرة

Ensuring complete inclusivity

I'm piecing together how the user's CMake configuration is lacking full Abseil-C++ directory, leading to missing include files. Adding the precise directory might resolve the error.

Reasoned for 11 seconds

الإجابة

从报错可以看出:

fatal error C1083: 无法打开包括文件: “absl/numeric/int128_no_intrinsic.inc”: No such file or directory

也就是说,在编译 absl/numeric/int128.h 时,需要引用的 absl/numeric/int128_no_intrinsic.inc 文件没能在包含路径里找到。


1. 为什么会出现这个问题?

目前你在 CMakeLists 里这样写:

cmake
include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include/third_party/abseil-cpp" )

但实际上,WebRTC 源码中的 Abseil 通常位于:

text
webrtc\src\third_party\abseil-cpp └─ absl └─ numeric ├─ int128.h ├─ int128_no_intrinsic.inc └─ ...

或者 webrtc\src\third_party\abseil-cpp\absl\numeric\int128_no_intrinsic.inc
它不是放在 webrtc\include\third_party\abseil-cpp\... 这条路径下 – 后者往往是 WebRTC 提供的一部分“flattened”头文件(有些 .inc 可能并未复制到这里)。

一旦 int128.h 试图 #include "absl/numeric/int128_no_intrinsic.inc",编译器自然到 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include/third_party/abseil-cpp/absl/numeric/ 下找 .inc 文件,但那里的 .inc 并不存在(或并没有被同步/flatten),就报“No such file or directory”。


2. 解决方法

方法 A:直接包含 webrtc\src\ 并使用原始的 Abseil 目录

最简单的做法是:在 CMake 的 include_directories 中把 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src 加进去。这样 #include "absl/... 就可以在 src/third_party/abseil-cpp/absl/... 下找到一切需要的文件(包括那些 .inc)。示例:

cmake
include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src" )

这样,当 int128.h#include "absl/numeric/int128_no_intrinsic.inc" 时,它会往 webrtc/src/third_party/abseil-cpp/absl/numeric/ 路径找 .inc,就能成功了。

当然,你也可以专门只写

cmake
include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp" )

让它能够找到 absl/numeric/... 下所有文件(包含 .inc)。

方法 B:不要使用 webrtc\include\third_party\abseil-cpp 这类“flattened”目录

如果你是手动拷贝/flatten 一些头文件去 webrtc\include\...,那就很可能缺少 .inc 之类。最好直接使用 WebRTC 源码本身的 src/third_party/abseil-cpp 路径来包含所有原始 Abseil 头文件,而不是用 webrtc/include/third_party/abseil-cpp 这种不完整的副本。

方法 C:确认你在 WebRTC 目录结构里有没有同步完整

有些情况下,如果 gclient sync 不完整,也可能 int128_no_intrinsic.inc 文件压根没拉下。但通常这不会是问题,因为 abseil-cpp 是公共子模块,一般会被完整同步。


3. 小结

  • 本质int128.h 需要的 .inc 文件无法从 webrtc\include\third_party\abseil-cpp 找到——这个“flattened”include路径中缺失 .inc
  • 解决:改用 WebRTC 源码真实路径 webrtc\src\third_party\abseil-cpp (或 webrtc\src\)作为 include 路径,这样编译器能找到所有头文件/.inc 文件。

一旦编译器能成功包含 int128_no_intrinsic.inc,这个错误就不会再出现。随后你还要注意与 WebRTC 的编译参数(Runtime Library、Debug/Release 等)保持一致,就可以顺利编译链接了。

سؤال

====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
[2/4] Generating CXX dyndep file CMakeFiles\WebRTCtest.dir\CXX.dd
[3/4] Building CXX object CMakeFiles\WebRTCtest.dir\main.cpp.obj
D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): warning C4005: “WEBRTC_ARCH_64_BITS”: 宏重定义
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): note: 之前在命令行上声明的“WEBRTC_ARCH_64_BITS”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(134): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(135): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(139): warning C4068: 未知的杂注“clang”
[4/4] Linking CXX executable WebRTCtest.exe
FAILED: WebRTCtest.exe
C:\WINDOWS\system32\cmd.exe /C "cd . && "D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\WebRTCtest.dir --rc=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\mt.exe --manifests -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe" /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\WebRTCtest.dir/intermediate.manifest CMakeFiles\WebRTCtest.dir/manifest.res" failed (exit code 1169) with the following output:
webrtc.lib(ssl_adapter.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_adapter.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(openssl_adapter.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_adapter.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(openssl_session_cache.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_session_cache.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(checks.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(checks.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(async_socket.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(async_socket.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pending_task_safety_flag.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pending_task_safety_flag.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(logging.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(logging.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(boringssl_identity.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(boringssl_identity.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(bio.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(bio.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_session.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_session.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(dtls_method.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(dtls_method.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls_method.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls_method.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(err.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(err.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(openssl_utility.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_utility.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(d1_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(d1_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(thread.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(thread.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(socket_address.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(socket_address.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(string_builder.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(string_builder.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_stat.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_stat.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_vfy.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_vfy.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_cmp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_cmp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_obj.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_obj.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_txt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_txt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pool.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pool.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(boringssl_certificate.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(boringssl_certificate.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(mem.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(mem.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(socket.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(socket.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(cbb.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(cbb.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_versions.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_versions.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(thread_win.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(thread_win.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ex_data.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ex_data.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(lhash.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(lhash.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(stack.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(stack.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(bcm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(bcm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_cipher.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_cipher.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(refcount.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(refcount.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_cert.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_cert.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(handshake_client.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(handshake_client.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(handshake_server.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(handshake_server.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(s3_both.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(s3_both.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(handshake.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(handshake.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls13_both.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls13_both.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(s3_pkt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(s3_pkt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_buffer.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_buffer.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(fd.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(fd.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(socket.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(socket.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(d1_both.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(d1_both.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_key_share.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_key_share.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(extensions.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(extensions.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(cbs.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(cbs.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_ec_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_ec_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(evp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(evp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_aead_ctx.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_aead_ctx.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls13_client.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls13_client.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_privkey.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_privkey.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(encrypted_client_hello.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(encrypted_client_hello.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(sequence_checker_internal.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(sequence_checker_internal.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(time_utils.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(time_utils.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(string_encode.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(string_encode.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(string_utils.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(string_utils.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(numbers.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(numbers.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_certificate.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_certificate.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(openssl_key_pair.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_key_pair.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_identity.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_identity.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(bio_mem.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(bio_mem.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rand.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rand.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls13_enc.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls13_enc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(d1_pkt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(d1_pkt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(buf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(buf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(s3_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(s3_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(err_data.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(err_data.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_utl.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_utl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_lu.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_lu.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_name.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_name.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_vpm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_vpm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_credential.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_credential.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_d2.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_d2.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_oth.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_oth.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(default_socket_server.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(default_socket_server.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(task_queue_base.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(task_queue_base.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(event_tracer.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(event_tracer.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(null_socket_server.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(null_socket_server.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(event.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(event.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ip_address.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ip_address.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_purp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_purp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_trs.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_trs.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_all.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_all.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_ncons.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_ncons.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(policy.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(policy.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_time.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_time.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509name.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509name.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_strex.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_strex.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_crl.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_crl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509cset.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509cset.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_genn.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_genn.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_set.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_set.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(sha1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(sha1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(md5.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(md5.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_int.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_int.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_pubkey.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_pubkey.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(obj.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(obj.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_object.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_object.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_dec.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_dec.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_enc.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_enc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_new.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_new.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_fre.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_fre.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_algor.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_algor.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_typ.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_typ.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_akeya.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_akeya.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_crld.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_crld.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_x509a.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_x509a.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_bitstr.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_bitstr.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(asn1_compat.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(asn1_compat.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tasn_utl.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tasn_utl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(asn1_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(asn1_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_val.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_val.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_exten.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_exten.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(siphash.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(siphash.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(crypto_random.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(crypto_random.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(evp_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(evp_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(message_digest.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(message_digest.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(openssl_digest.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_digest.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(crypto.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(crypto.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(fork_detect.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(fork_detect.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(forkunsafe.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(forkunsafe.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(windows.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(windows.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(evp_ctx.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(evp_ctx.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(engine.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(engine.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(sha256.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(sha256.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(digest_extra.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(digest_extra.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(e_chacha20poly1305.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(e_chacha20poly1305.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(e_tls.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(e_tls.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_transcript.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_transcript.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_rsa_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_rsa_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rsa_crypt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rsa_crypt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(t1_enc.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(t1_enc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls13_server.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls13_server.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(hpke.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(hpke.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls_record.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls_record.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(spake2plus.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(spake2plus.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(errno.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(errno.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(socket_helper.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(socket_helper.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(dtls_record.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(dtls_record.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ec_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ec_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(convert.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(convert.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(curve25519.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(curve25519.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(kyber.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(kyber.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(mlkem.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(mlkem.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ecdsa_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ecdsa_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(d1_srtp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(d1_srtp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(posix_time.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(posix_time.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_ec.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_ec.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_dsa_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_dsa_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_dh_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_dh_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_ed25519_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_ed25519_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_x25519_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_x25519_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_rsa.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_rsa.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rsa_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rsa_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(system_time.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(system_time.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(charconv.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(charconv.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(raw_logging.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(raw_logging.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(match.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(match.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ascii.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ascii.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(int128.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(int128.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ssl_fingerprint.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_fingerprint.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(base64.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(base64.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(copy_on_write_buffer.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(copy_on_write_buffer.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_pkey.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_pkey.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_all.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_all.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(file.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(file.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(base64.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(base64.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(derive_key.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(derive_key.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(e_des.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(e_des.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(chacha.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(chacha.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(conf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(conf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_ext.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_ext.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_info.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_info.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_req.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_req.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_lib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_lib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_octet.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_octet.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_dup.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_dup.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(by_file.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(by_file.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(by_dir.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(by_dir.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(physical_socket_server.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(physical_socket_server.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(platform_thread.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(platform_thread.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(yield_policy.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(yield_policy.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(net_helpers.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(net_helpers.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_bcons.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_bcons.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_v3.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_v3.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_verify.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_verify.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_req.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_req.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_sign.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_sign.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_spki.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_spki.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_d2i_fp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_d2i_fp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_i2d_fp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_i2d_fp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(dsa_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(dsa_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_digest.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_digest.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_sig.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_sig.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pkcs8_x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pkcs8_x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(i2d_pr.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(i2d_pr.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(dh_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(dh_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_alt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_alt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(printf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(printf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_cpols.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_cpols.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_pmaps.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_pmaps.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_pcons.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_pcons.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_utctm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_utctm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_gentm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_gentm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_strnid.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_strnid.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(asn1_par.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(asn1_par.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_type.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_type.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(unicode.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(unicode.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(a_mbstr.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(a_mbstr.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_conf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_conf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(name_print.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(name_print.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(dsa.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(dsa.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(cpu_intel.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(cpu_intel.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_ed25519.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_ed25519.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_x25519.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_x25519.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_hkdf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_hkdf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(blake2.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(blake2.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(md4.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(md4.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(poly1305_vec.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(poly1305_vec.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(tls_cbc.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(tls_cbc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(scrypt.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(scrypt.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(sha512.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(sha512.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(bn_asn1.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(bn_asn1.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ecdh.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ecdh.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p_dh.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p_dh.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(charconv_parse.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(charconv_parse.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(charconv_bigint.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(charconv_bigint.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(memutil.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(memutil.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rtc_certificate.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rtc_certificate.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_pk8.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_pk8.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pkcs7_x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pkcs7_x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(des.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(des.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_att.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_att.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x_attrib.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x_attrib.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_bitst.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_bitst.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_ia5.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_ia5.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_skey.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_skey.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_int.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_int.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_akey.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_akey.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_extku.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_extku.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_enum.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_enum.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_ocsp.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_ocsp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_xaux.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_xaux.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pem_info.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pem_info.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509_def.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509_def.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(async_dns_resolver.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(async_dns_resolver.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(recursive_critical_section.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(recursive_critical_section.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(win32.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(win32.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(algorithm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(algorithm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pkcs8.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pkcs8.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(ber.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ber.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(p5_pbev2.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(p5_pbev2.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(asn1_gen.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(asn1_gen.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(t_x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(t_x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pbkdf.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pbkdf.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(pkcs7.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(pkcs7.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rsa_pss.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rsa_pss.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(obj_xref.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(obj_xref.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(e_rc2.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(e_rc2.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(e_rc4.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(e_rc4.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(print.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(print.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(x509.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(x509.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(v3_prn.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(v3_prn.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(t_x509a.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(t_x509a.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(asn_pack.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(asn_pack.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(f_int.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(f_int.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(rc4.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(rc4.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
webrtc.lib(hexdump.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(hexdump.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: bool __cdecl std::ios_base::good(void)const " (?good@ios_base@std@@QEBA_NXZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: int __cdecl std::ios_base::flags(void)const " (?flags@ios_base@std@@QEBAHXZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(void)const " (?width@ios_base@std@@QEBA_JXZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(__int64)" (?width@ios_base@std@@QEAA_J_J@Z) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@std@@@std@@QEAAHD@Z) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: __int64 __cdecl std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,__int64)" (?sputn@?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@std@@@std@@QEAA_JPEBD_J@Z) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: void __cdecl std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?basicios@DU?basic_ios@DU?char_traits@D@std@@@std@@QEAAXH_N@Z) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?basicios@DU?basic_ios@DU?char_traits@D@std@@@std@@QEBAPEAV?basicostream@DU?basic_ostream@DU?char_traits@D@std@@@2@XZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __cdecl std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?basicios@DU?basic_ios@DU?char_traits@D@std@@@std@@QEBAPEAV?basicstreambuf@DU?basic_streambuf@DU?char_traits@D@std@@@2@XZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?basicios@DU?basic_ios@DU?char_traits@D@std@@@std@@QEBADXZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits<char> >::widen(char)const " (?widen@?basicios@DU?basic_ios@DU?char_traits@D@std@@@std@@QEBADD@Z) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: void __cdecl std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?basicostream@DU?basic_ostream@DU?char_traits@D@std@@@std@@QEAAXXZ) 已经在 webrtc.lib(int128.obj) 中定义
msvcprtd.lib(MSVCP140D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?basicostream@DU?basic_ostream@DU?char_traits@D@std@@@std@@QEAAAEAV12@XZ) 已经在 webrtc.lib(int128.obj) 中定义
libcpmtd0.lib(raisehan.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(raisehan.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(locale0.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(locale0.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(locale0.obj) : error LNK2005: "void __cdecl std::_Facet_Register(class std::_Facet_base *)" (?_Facet_Register@std@@YAXPEAV_Facet_base@1@@Z) 已经在 msvcprtd.lib(locale0_implib.obj) 中定义
libcpmtd0.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(bool)" (?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" (?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@Z) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(locale.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(locale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(iosptrs.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(iosptrs.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(wlocale.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(wlocale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xlocale.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xlocale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xstol.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstol.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xstoul.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstoul.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xstoll.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstoll.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xstoull.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstoull.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xlock.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xlock.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xlock.obj) : error LNK2005: "public: __cdecl std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QEAA@H@Z) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(xlock.obj) : error LNK2005: "public: __cdecl std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QEAA@XZ) 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(xstrcoll.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstrcoll.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xdateord.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xdateord.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xmbtowc.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xmbtowc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xwctomb.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xwctomb.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xwctomb.obj) : error LNK2005: _Getcvt 已经在 msvcprtd.lib(MSVCP140D.dll) 中定义
libcpmtd0.lib(xwcscoll.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xwcscoll.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xwcsxfrm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xwcsxfrm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xgetwctype.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xgetwctype.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xtowlower.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xtowlower.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xtowupper.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xtowupper.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xstrxfrm.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xstrxfrm.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(xmtx.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(xmtx.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlCompareStringA.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlCompareStringA.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlCompareStringW.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlCompareStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringW.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringA.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringA.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
LINK : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
WebRTCtest.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
ninja: build stopped: subcommand failed.

这是修改后再一次运行的报错信息,请你分析问题所在并给出解决方案

الفكرة

Addressing the library conflict

OK, let me see. To resolve the mismatch error between the WebRTC library and main.cpp.obj, I need to align their runtime library settings. Using set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") or adjusting GN flags like rtc_use_static_cpp_runtime=false should do the trick.

Clarifying debug mode differences

I'm pulling together details on _ITERATOR_DEBUG_LEVEL values to ensure both WebRTC and main.cpp.obj are unified in either static or dynamic debug settings.

Reasoned for 11 seconds

الإجابة

从错误日志最醒目的部分可看出,所有未能链接的地方都有类似提示:

text
错误 LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中) 错误 LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”

这说明 webrtc.lib 是在 /MTd(静态链接调试运行库) + _ITERATOR_DEBUG_LEVEL=0 编译出来的,而你当前的 main.cpp.obj 则是使用了 /MDd(动态链接调试运行库) + _ITERATOR_DEBUG_LEVEL=2。二者不匹配,所以链接失败。

简而言之:WebRTC 编译出来的静态库和你在 CMake 工程中使用的运行时库模式不一致


1. 为什么会出现 “MTd vs MDd” 不匹配?

  • MSVC 下有四种常见的 C++ 运行时选项:

    1. /MD = 动态库方式链接 VC++ 运行时 (Release)
    2. /MDd = 动态库方式链接 VC++ 运行时 (Debug)
    3. /MT = 静态库方式链接 VC++ 运行时 (Release)
    4. /MTd = 静态库方式链接 VC++ 运行时 (Debug)
  • 当“webrtc.lib”是用 MTd 编译,而“main.cpp”是用 MDd 编译,就出现了 RuntimeLibrary=MTd_StaticDebug vs MDd_DynamicDebug 冲突。

  • _ITERATOR_DEBUG_LEVEL=2 是 MSVC 在 Debug + 默认/MDd 模式下常用的“安全迭代器”级别,而 =0 通常说明没有启用安全迭代器模式或者采用了别的编译方式(例如某些官方 GN scripts 下的 /MTd 不带安全迭代器)。


2. 如何让两边保持一致?

方案 A:让你的 CMake 工程也使用 /MTd

如果你希望使用 WebRTC 的“静态库 + 静态调试CRT”编译方式,则需要在 CMake 中强制 /MTd

  1. 在 CMakeLists.txt 中添加:

    cmake
    # 在 MSVC 下,将 Debug 模式改为 /MTd 而不是 /MDd if(MSVC) # 这是 CMake 3.15 之前的常用写法 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") # 如果是 CMake 3.15+,可以用更直观的: # set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") endif()
  2. 确保工程是 Debug 配置,并且编译后 main.cpp.obj 也使用 MTd_StaticDebug

  3. 如此就与 “webrtc.lib” 一致,都用 /MTd。

方案 B:让 WebRTC 使用 /MDd

如果你想项目继续用 /MDd (动态调试CRT),就需要在 GN 编译 WebRTC 时禁用静态CRT。一般可以加:

bash
gn gen out\test4 --ide=vs2022 --args=" \ is_debug=true \ use_custom_libcxx=false \ rtc_use_static_cpp_runtime=false # 禁用/MT, 改用/MD " ninja -C out\test4

这样生成的 webrtc.lib 就会带 “MDd_DynamicDebug”,并且 _ITERATOR_DEBUG_LEVEL=2。你的 CMake 工程只要在 Debug 模式保持 /MDd 就能匹配。

注意:部分 GN 配置可能默认就是 /MD//MDd,但如果你设置了 is_official_build=true 或别的编译标志,可能默认成了 /MT /MTd。查看编译日志里 cl.exe 的参数,确定它用了什么运行时。


3. 小结

根本原因:** webrtc.lib** 与 main.obj 的运行时库模式冲突 —— “MTd_StaticDebug” vs “MDd_DynamicDebug”。
解决:让二者都用同一种 (要么静态CRT,要么动态CRT,且 Debug/Release 一致)。常见做法有:

  1. (A) 改 CMake:在 Debug 模式下也用 /MTd,以匹配现有的 webrtc.lib。
  2. (B) 改 GN:让 WebRTC 用 /MDd ( rtc_use_static_cpp_runtime=false ),以匹配你 CMake 工程默认的 /MDd。

统一后,就不会出现 _ITERATOR_DEBUG_LEVEL/RuntimeLibrary 值不匹配,链接才能成功。

سؤال


"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
cl: 命令行 warning D9025 :正在重写“/MTd”(用“/MDd”)
[2/4] Generating CXX dyndep file CMakeFiles\WebRTCtest.dir\CXX.dd
[3/4] Building CXX object CMakeFiles\WebRTCtest.dir\main.cpp.obj
cl: 命令行 warning D9025 :正在重写“/MTd”(用“/MDd”)
D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): warning C4005: “WEBRTC_ARCH_64_BITS”: 宏重定义
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): note: 之前在命令行上声明的“WEBRTC_ARCH_64_BITS”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(134): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(135): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(139): warning C4068: 未知的杂注“clang”
[4/4] Linking CXX executable WebRTCtest.exe
FAILED: WebRTCtest.exe
C:\WINDOWS\system32\cmd.exe /C "cd . && "D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\WebRTCtest.dir --rc=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\mt.exe --manifests -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe" /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\WebRTCtest.dir/intermediate.manifest CMakeFiles\WebRTCtest.dir/manifest.res" failed (exit code 1169) with the following output:
webrtc.lib(ssl_adapter.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(ssl_adapter.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
(已省略....)
libcpmtd0.lib(StlCompareStringW.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlCompareStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringW.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringA.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
libcpmtd0.lib(StlLCMapStringA.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(main.cpp.obj 中)
LINK : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
WebRTCtest.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
ninja: build stopped: subcommand failed.

这是使用你方案A之后的报错信息,请你分析问题所在并给出解决方案

الفكرة

Investigating configuration

OK, let's consider the forceful /MDd setting in CLion. The link errors point to a mismatch, possibly due to the generator or environment variables. The solution might involve adjusting "CMAKE_MSVC_RUNTIME_LIBRARY" or "-A x64".

Weighing the options

Switching to solution B might make unifying the webrtc libraries easier. Considering alternatives like adjusting CMake settings or using a newer version could also work.

Reasoned for 7 seconds

الإجابة

从日志可见,你已经尝试了方案 A:在 CMake 里强制使用 /MTd,但编译器输出提示:

cl: 命令行 warning D9025 : 正在重写“/MTd”(用“/MDd”)

这说明 你手动加的 /MTd 被其他设置覆盖,实际使用的仍然是 /MDd(动态调试 CRT)。这就导致链接时再次出现 “MTd_StaticDebug vs MDd_DynamicDebug” 的冲突。


1. 为什么 /MTd 会被重写成 /MDd

在 Visual Studio 或 Clion + CMake 的默认配置下,Debug 模式往往会自动使用 /MDd(动态调试CRT)。你对 CMAKE_CXX_FLAGS_DEBUGCMAKE_MSVC_RUNTIME_LIBRARY 所做的设置,可能并没有生效,或者是被后续规则/配置给覆盖了。例如:

  • Clion 默认的 CMake Preset/Toolchain 里,Debug = /MDd;你的自定义 /MTd 选项只是附加上去,但后面被 Clion/VS “重写”。
  • CMake 版本 问题:如果你在 CMake >= 3.15 里想用 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug"),却可能被别的地方再次改成 MultiThreadedDLL(即 /MDd)。
  • Visual Studio 生成器 里,对于 Debug 配置默认就是 /MDd;你写在 CMAKE_CXX_FLAGS_DEBUG 中的标志可能没优先级。

2. 如何真正让工程使用 /MTd?

方法 A:彻底让 CMake 强制 /MTd

  1. 如果你的 CMake 版本 ≥ 3.15,可以在 CMakeLists.txt 顶部加:

    cmake
    cmake_minimum_required(VERSION 3.15) project(WebRTCtest LANGUAGES CXX) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd

    这样就会在 Debug 模式下使用 /MTd。如果还有别的变量在覆盖,需要再检查。

  2. 如果你的 CMake 比较旧,则可继续用传统写法,但要先清除旧标志再加新标志,比如:

    cmake
    # 先把 /MDd 移除再手动追加 /MTd string(REGEX REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

    并确保后续不会再被改回 /MDd。

  3. 打开 Clion 的“Settings → Build → CMake”里看看有没有额外的 CMake options默认toolchain选项强行指定了 /MDd

    • 若看到 -DCMAKE_CXX_FLAGS_DEBUG=/MDd 之类,需要删掉或改掉。
  4. 最后在“Run → Edit Configurations”中确认 Clion 并没有注入别的 flags(如 /MDd)。

若一切都做对,则编译输出不再出现“重写 /MTd (用 /MDd)”的提示,就说明你成功让工程使用 /MTd 了。

方法 B:改 GN 让 WebRTC 用 /MDd

如果你想保留 Clion 的默认 Debug(/MDd 动态 CRT),那就要让 WebRTC 也编成 /MDd。典型做法是在 GN 参数里:

bash
gn gen out\Debug-md --args=" is_debug=true use_custom_libcxx=false rtc_use_static_cpp_runtime=false # 这会改为 /MDd,而不是 /MTd "

编译完成后 webrtc.lib 就是 /MDd + _ITERATOR_DEBUG_LEVEL=2。这样链接到你的 CMake 工程 (默认 /MDd) 就不会冲突了。

方法 C:使用 Release 模式(/MT 或 /MD)

有些人不需要 Debug CRT。只要在 Release 模式下统一即可,比如 WebRTC 用 /MT (或 /MD) + 你的工程也用 /MT(或 /MD)。
这样可以绕过 _ITERATOR_DEBUG_LEVEL=2 等调试符号问题。但你如果想在 Debug 下调试,就不适合此方案。


3. 小结

根源

  • WebRTC 的静态库是 /MTd (静态调试CRT)。
  • Clion/CMake 默认 Debug 是 /MDd (动态调试CRT)。
  • 你尝试在 CMake 中 set(CMAKE_CXX_FLAGS_DEBUG "/MTd") 却被覆盖,导致冲突依旧。

解法

  1. 真正切到 /MTd:彻底阻止 /MDd 覆盖;可用 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")(CMake 3.15+),或在老CMake中先移除 /MDd 再加 /MTd,并检查 Clion 的默认toolchain配置。
  2. 重新编译 WebRTC 用 /MDdrtc_use_static_cpp_runtime=false,使 webrtc.lib 与你工程都用 /MDd
  3. 改用 Release (若不需要调试)。

无论哪种,只要两边编译器选项一致,你就不会再收到“_ITERATOR_DEBUG_LEVEL mismatch”或者“MTd vs MDd mismatch”的链接错误。

سؤال

====================[ 构建 | WebRTCtest | Debug ]=================================
"D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\cmake-build-debug --target WebRTCtest -j 14
[1/4] Scanning D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp for CXX dependencies
[2/4] Generating CXX dyndep file CMakeFiles\WebRTCtest.dir\CXX.dd
[3/4] Building CXX object CMakeFiles\WebRTCtest.dir\main.cpp.obj
D:\Work_and_learn\Code\CPP\CPPWork\WebRTCtest\main.cpp(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): warning C4005: “WEBRTC_ARCH_64_BITS”: 宏重定义
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/system/arch.h(25): note: 之前在命令行上声明的“WEBRTC_ARCH_64_BITS”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(134): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(135): warning C4068: 未知的杂注“clang”
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src\rtc_base/stream.h(139): warning C4068: 未知的杂注“clang”
[4/4] Linking CXX executable WebRTCtest.exe
FAILED: WebRTCtest.exe
C:\WINDOWS\system32\cmd.exe /C "cd . && "D:\Software\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\WebRTCtest.dir --rc=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\mt.exe --manifests -- "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe" /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "D:\Software\Microsoft Visual Studio\2022\Common\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64\link.exe /nologo CMakeFiles\WebRTCtest.dir\main.cpp.obj /out:WebRTCtest.exe /implib:WebRTCtest.lib /pdb:WebRTCtest.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:D:\Work_and_learn\Code\CPP\WebRTC\webrtc\lib webrtc.lib ws2_32.lib secur32.lib winmm.lib iphlpapi.lib advapi32.lib user32.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:CMakeFiles\WebRTCtest.dir/intermediate.manifest CMakeFiles\WebRTCtest.dir/manifest.res" failed (exit code 1319) with the following output:
webrtc.lib(ssl_adapter.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(openssl_adapter.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
(已省略)
webrtc.lib(rc4.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
webrtc.lib(hexdump.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(main.cpp.obj 中)
WebRTCtest.exe : fatal error LNK1319: 检测到 277 个不匹配项
ninja: build stopped: subcommand failed.

这是使用了你方案A.1之后的报错信息,请你分析问题所在并给出解决方案

الفكرة

Addressing _ITERATOR_DEBUG_LEVEL

I’m gathering info on _ITERATOR_DEBUG_LEVEL and its mismatch issues, suggesting webrtc.lib's special compile settings might be affecting this. Defining _ITERATOR_DEBUG_LEVEL=0 in the main file or re-compiling webrtc with enable_iterator_debugging=true are potential solutions.

Addressing mismatch issues

I’m working through _ITERATOR_DEBUG_LEVEL mismatch, suggesting _ITERATOR_DEBUG_LEVEL=2 for webrtc re-compilation to avoid special settings that override standard debug behavior.

Reasoned for 9 seconds

الإجابة

从最新的报错依然可以看到:“_ITERATOR_DEBUG_LEVEL 的不匹配:值“0”不匹配值“2””。这说明即使你已经将 CMake 工程切换到了 “/MTd” 或类似的静态调试 CRT,WebRTC 静态库中仍然使用了 _ITERATOR_DEBUG_LEVEL=0,而你的编译则使用了 MSVC 默认的 _ITERATOR_DEBUG_LEVEL=2(调试迭代器)。

在 MSVC 上,Debug 模式通常会启用安全迭代器_ITERATOR_DEBUG_LEVEL=2),而某些第三方项目(包括 Chromium/WebRTC 的官方“Debug”)却会强行禁用这些安全迭代器(_ITERATOR_DEBUG_LEVEL=0),两者不兼容,就会触发链接错误(和之前的“MTd vs MDd”问题原理相同)。


1. 为什么会出现 _ITERATOR_DEBUG_LEVEL=0

在 Chromium/WebRTC 的 GN 构建中,即使 is_debug=true,也可能通过其他选项/默认脚本禁用 MSVC 的调试迭代器。例如:

  • is_official_build=true 或某些 GN 默认配置,把 _ITERATOR_DEBUG_LEVEL 设为 0 来保持与 Release 模式 ABI 更一致。
  • Chromium 在 Debug 模式下也常用 _ITERATOR_DEBUG_LEVEL=0 以减少性能损耗、避免二进制不兼容。

因此,你在 WebRTC GN 里只写了 is_debug=true use_custom_libcxx=false构建产物里仍然使用 _ITERATOR_DEBUG_LEVEL=0(禁用安全迭代器),而你的 MSVC 工程 Debug 下默认是 2。


2. 如何解决?

方案 A:让自己的工程使用 _ITERATOR_DEBUG_LEVEL=0

如果你 不在意 MSVC 安全迭代器,可以在 CMake 中禁用它,令二者一致:

cmake
# 在调试配置下添加编译定义: add_definitions(-D_HAS_ITERATOR_DEBUGGING=0 -D_ITERATOR_DEBUG_LEVEL=0)

这样你的 main.cpp 将被编译成 _ITERATOR_DEBUG_LEVEL=0,就能与 “webrtc.lib” 匹配。

同时也要确认 /MTd/MDd 和 WebRTC 相同(前面链接错误的 CRT 不匹配问题)。

方案 B:在 GN 中改 WebRTC 为 _ITERATOR_DEBUG_LEVEL=2

如果你想保留 MSVC 默认的安全迭代器(=2),那就需要在 WebRTC 编译时指定开启 _ITERATOR_DEBUG_LEVEL=2。可以:

  • 查看 WebRTC/Chromium 是否有 enable_iterator_debugging=trueis_official_build=false 并未强制覆盖 _ITERATOR_DEBUG_LEVEL=0
  • 手动修改 GN 配置 / .gni 文件 / args.gn 以确保 Debug 模式不会把 _ITERATOR_DEBUG_LEVEL 设为 0。
  • 然后重新编译 WebRTC 产生的库也带 “2”,即可链接到你默认 MSVC Debug(2) 无冲突。

方案 C:改用 Release 模式

如果你不需要 MSVC 的调试迭代器或断点信息,就直接用 Release 配置:Release 模式下 _ITERATOR_DEBUG_LEVEL 通常是 0,自动与 WebRTC 的 0 匹配,也就不会再出现冲突了。


3. 小结

现在的错误与之前 “/MT vs /MD” 一样,都是编译选项不匹配的问题,本质就是 _ITERATOR_DEBUG_LEVEL 冲突。Chromium/WebRTC 在 Debug 下默认禁用了安全迭代器(=0),而你 CMake + MSVC Debug 缺省 =2。要想链接成功,必须让二者一致:

  1. (A) 在你工程里设置 -D_ITERATOR_DEBUG_LEVEL=0,以匹配 WebRTC;
  2. (B) 或在编译 WebRTC 时开启 =2
  3. (C) 或干脆用 Release (两边默认=0)。

只要保证二者相同,就能消除 “值 0 不匹配值 2” 链接冲突了。

سؤال

cmake_minimum_required(VERSION 3.29)
project(WebRTCtest)

set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd

set(CMAKE_CXX_STANDARD 20)

add_definitions(
-DWEBRTC_WIN
-DWIN32_LEAN_AND_MEAN
-DNOMINMAX
-DWEBRTC_LITTLE_ENDIAN
-DWEBRTC_ARCH_64_BITS # 如果你是64位编译
-D_WIN32_WINNT=0x0A00 # WebRTC/Chromium对 Windows 10 的要求
# ... 还可以加其他 _CRT_SECURE_NO_WARNINGS 等
-D_HAS_ITERATOR_DEBUGGING=0
-D_ITERATOR_DEBUG_LEVEL=0
)

在 MSVC 下,将 Debug 模式改为 /MTd 而不是 /MDd

if(MSVC)
# 这是 CMake 3.15 之前的常用写法
set(CMAKE_CXX_FLAGS_DEBUG "{CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_C_FLAGS_DEBUG "{CMAKE_C_FLAGS_DEBUG} /MTd")

text
# 如果是 CMake 3.15+,可以用更直观的: # set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")

endif()

(1) 指定 WebRTC 头文件所在目录 (示例)

set(WEBRTC_INCLUDE_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")

(2) 指定 WebRTC 静态库所在目录 (示例)

注意:很多 .lib 文件会放在 out/Release-vs2022/obj/xxx 下,

你可能需要把这些路径都加进来,或者递归搜索。

set(WEBRTC_LIB_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/lib")

(3) 包含头文件

include_directories(
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src"
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp"
)

(4) 设置要链接的库目录

这里简单示例,如果你只需要部分库,可以分别 link_directories 或者直接用 target_link_libraries

link_directories(
${WEBRTC_LIB_DIR}
)

(5) 新建可执行文件

add_executable(WebRTCtest main.cpp)

(6) 链接 WebRTC 所需的静态库 + Windows 系统库

下面的库名称可能跟你 out/Release-vs2022/obj 下出现的 .lib 文件名对应

target_link_libraries(WebRTCtest
# === 以下示例:你最少需要 rtc_base, system_wrappers, 以及一些其他库。===
# 可根据实际 .lib 文件名进行增减。
webrtc

text
# === Windows系统库示例 === ws2_32 secur32 winmm iphlpapi advapi32 user32 # 如果还有其他依赖,比如 dmoguids, msdmo 等,可继续添加

)

现在请你对上面这份CMakeLists中的内容说一下
“set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd”
“add_definitions(
-DWEBRTC_WIN
-DWIN32_LEAN_AND_MEAN
-DNOMINMAX
-DWEBRTC_LITTLE_ENDIAN
-DWEBRTC_ARCH_64_BITS # 如果你是64位编译
-D_WIN32_WINNT=0x0A00 # WebRTC/Chromium对 Windows 10 的要求
# ... 还可以加其他 _CRT_SECURE_NO_WARNINGS 等
-D_HAS_ITERATOR_DEBUGGING=0
-D_ITERATOR_DEBUG_LEVEL=0
)”

在 MSVC 下,将 Debug 模式改为 /MTd 而不是 /MDd

if(MSVC)
# 这是 CMake 3.15 之前的常用写法
set(CMAKE_CXX_FLAGS_DEBUG "{CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_C_FLAGS_DEBUG "{CMAKE_C_FLAGS_DEBUG} /MTd")

text
# 如果是 CMake 3.15+,可以用更直观的: # set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")

endif()

这些内容是干什么,为什么要这样做?

以及解释一下为什么要使用“include_directories(
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src"
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp"
)”这个头文件路径,而不是使用通过“echo off
::定义源目录
set sourcePath=.\src
::定义目标路径
set resulePath=.\include
xcopy %sourcePath%*.h %resulePath%\ /s /e /c /y /r
pause”这个bat文件提取出来的头文件路径("D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")

الفكرة

Reasoned for a couple of seconds

الإجابة

下面分 两大部分 来解释:第一部分是关于 CMakeLists.txt 中的编译器选项与宏定义,第二部分是为什么要使用 WebRTC 源码真实目录 来包含头文件,而不是去拷贝一份头文件。


1. CMakeLists.txt 中的编译器选项与宏定义

在这份 CMakeLists.txt 中,你能看到:

cmake
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd ... add_definitions( -DWEBRTC_WIN -DWIN32_LEAN_AND_MEAN -DNOMINMAX -DWEBRTC_LITTLE_ENDIAN -DWEBRTC_ARCH_64_BITS -D_WIN32_WINNT=0x0A00 ... -D_HAS_ITERATOR_DEBUGGING=0 -D_ITERATOR_DEBUG_LEVEL=0 ) if(MSVC) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /MTd") # (注释掉的)set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") endif()

1.1 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd

  • 作用:这是 CMake 3.15+ 提供的新选项,用于指定 MSVC 下使用哪种运行时库。
    • "MultiThreadedDebug" 对应 /MTd (静态链接调试 CRT)。
    • 也可以用 "MultiThreaded"(/MT)、"MultiThreadedDLL"(/MD)、"MultiThreadedDebugDLL"(/MDd)等。
  • 为什么要这样:因为你当前的 WebRTC 静态库是以 /MTd(静态调试 CRT)编译的。如果你的应用程序里用的却是 /MDd(动态调试 CRT),就会导致链接冲突(如 “RuntimeLibrary mismatch: MTd vs MDd”)。
  • 通过这行设置,你的工程也会用 /MTd,与 WebRTC 保持一致,避免运行时库冲突。

1.2 add_definitions(...) 中的一系列宏

  • -DWEBRTC_WIN-DWIN32_LEAN_AND_MEAN-DNOMINMAX-DWEBRTC_LITTLE_ENDIAN-DWEBRTC_ARCH_64_BITS-D_WIN32_WINNT=0x0A00 等:
    • 作用:显式告诉编译器当前目标平台是 Windows、使用 64 位架构、支持 Win10 API 等等。
    • 为什么要这样:因为 WebRTC 在许多地方会根据 WEBRTC_WINWEBRTC_ARCH_64_BITS 来启用/禁用对应的代码路径。如果不定义,可能会报 “missing byte order functions” 或不识别 Windows 平台。
    • WIN32_LEAN_AND_MEANNOMINMAX 则是常见的 Windows 宏,用于减少 Windows 头文件包含的内容,以及避免 min()/max() 宏冲突。
  • -D_HAS_ITERATOR_DEBUGGING=0-D_ITERATOR_DEBUG_LEVEL=0
    • 作用:这两个是 MSVC 特定的宏,用来控制 “安全迭代器”(iterator debugging)的等级。
    • 在 Debug 模式下,MSVC 默认会设置 _ITERATOR_DEBUG_LEVEL=2(启用安全迭代器,能检查越界等)。
    • Chromium/WebRTC 通常在他们的 “Debug” 里禁用安全迭代器(=0)以减少性能损失,并保持二进制兼容性。
    • 为什么要这样:如果 WebRTC 的库是用 _ITERATOR_DEBUG_LEVEL=0 编译,你的工程却是 _ITERATOR_DEBUG_LEVEL=2,就会出现 LNK2038: mismatch detected 之类的错误。通过显式设为 0,可以匹配 WebRTC 的设置。
  • 另外像 _CRT_SECURE_NO_WARNINGS 是 MSVC 在使用一些 “不安全函数”(sprintfstrcpy等)时去掉安全警告的常用宏。

1.3 if(MSVC) ... set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") ...

  • 作用:这段是为了 CMake 3.15 之前 的传统写法。因为旧版本 CMake 不支持 CMAKE_MSVC_RUNTIME_LIBRARY,就只能手动往编译器标志里追加 /MTd
  • 同时你也看到注释中说,如果是 CMake 3.15+,可以用 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") 更直观地设置。
  • 为什么要这样:同样是为了确保调试模式使用 /MTd,而不是 /MDd 或别的运行时。

2. 为什么使用 WebRTC 源码真实目录来包含头文件?

在这份 CMakeLists 中,你用了:

cmake
include_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src" "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp" )

不是用之前提到的拷贝命令(BAT 文件),类似:

bat
:: xcopy src/*.h include/ /s /e /y

然后再 include_directories("D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")

2.1 原因:WebRTC 头文件不止是 “.h”,还有 .inc、子目录层级

  • WebRTC/Abseil/Chromium 中有很多 .inc 文件、或多层目录下的头文件。
  • 如果你只拷贝了 “public” 的 .h 到一个 “include/” 目录,可能缺失 .inc 或其他私有头文件(比如 absl/numeric/int128_no_intrinsic.inc)。编译时就会出现 #include 找不到文件的错误。
  • 也有些头文件可能是 GN “flatten” 时复制到 webrtc/include/,但并不一定完整。

2.2 原因:源码中 “third_party/...” 依赖的头文件不在 webrtc/include/

  • 例如 Abseil 代码在 webrtc/src/third_party/abseil-cpp/absl/... 下,某些 .inc 文件只存在原始目录。
  • 如果只复制 .hwebrtc/include/third_party/abseil-cpp/, 未必把 .inc 同步过来。
  • 结果就会编译失败:No such file or directory: "absl/numeric/int128_no_intrinsic.inc" 之类。

2.3 结论

  • 直接 include “D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src” 能让编译器找到 所有 原始位置的头文件/.inc/子目录,而不必人工拷贝。
  • 如果以后 WebRTC 升级,头文件变动,你也不用重复维护拷贝脚本。
  • 这在多模块、大型工程(Chromium/WebRTC)中很常见:源码自带许多 Third-Party 目录,必须直接包含它们才比较稳妥。

总结

  1. CMakeLists.txt 中的编译器选项/宏

    • CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug":强制使用 /MTd
    • add_definitions(-D_HAS_ITERATOR_DEBUGGING=0 -D_ITERATOR_DEBUG_LEVEL=0):与 WebRTC 对齐,避免迭代器调试级别冲突;
    • 其余宏如 WEBRTC_WIN, NOMINMAX 等是给 WebRTC 代码识别平台、避免 Windows 宏冲突等。
  2. 为什么要直接包含 webrtc/src 而不从 “include/” 文件夹复制头文件

    • WebRTC 依赖大量子目录、.inc 文件,如果只复制 .h,容易丢失或不完整;
    • 源码路径里有所有需要的头文件,可一次性包含,避免文件缺失;
    • 不用维护多余的拷贝脚本,减少出错概率。

مشاركة هذا السؤال والجواب