“ D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot...
Tạo vào: 16 tháng 3, 2025
Tạo vào: 16 tháng 3, 2025
“
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:
git config --global core.filemode false
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: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
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:
git config --global core.filemode false
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
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时的问题所在。使用中文进行回答
从报错信息和操作过程来看,你现在遇到的主要问题是 WebRTC 的依赖仓库和工具无法完整下载/同步,导致最终在执行 gn gen
时找不到 gn.exe
(也就是根本没能成功把 buildtools 这类内容拉下来)。具体地说,有以下几个关键点:
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.com
、googlesource.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_PROXY
、HTTPS_PROXY
环境变量,特别是如果它内部使用了别的库或走了新的调用方式,可能需要额外配置。有时候还需要设 no_proxy
或者其他系统级的代理设置。
如果你是在翻墙 / 科学上网,需要尽可能确保 CIPD、git
、gclient
这些过程都能穿透代理并保持连接稳定。
所以,从根本上看,你需要 一个高速、稳定、完整的网络代理或 VPN 环境,让所有谷歌域名都能顺利拉取代码、下载 CIPD 包。否则 fetch/gclient 执行到中途就会被重置或中断,从而造成仓库不完整。
gn.exe
不存在gn
是从 src/buildtools
子仓库下载下来的,可你在日志里已经看到 src/tools
、src/third_party
等好几个子仓库克隆拉取失败。gn
。gn gen
都报一样的错:Could not find gn executable at: ['...buildtools\\win\\gn\\gn.exe']
。其实就是因为同步没成功,文件没下载下来。在某次 gclient sync
出错后,日志里出现了:
textError: 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 stash
或 git reset --hard
把它还原,然后再次 gclient sync
。
不过在你网络不稳定的情况下,这一步能否把仓库完全修复好,仍然要看后续是否能稳定下载。
确保网络环境通畅
ping
、telnet 443
之类是否真的能连通谷歌域名。检查 CIPD 是否可以走代理
HTTPS_PROXY
、HTTP_PROXY
,并确认 CIPD 能读到这些变量。ALL_PROXY
。再次 fetch webrtc
或者 gclient sync
D:\Work_and_learn\Code\CPP\CPPwork\WebRTC\depot_tools\webrtc
整个删掉重来)。考虑使用镜像
完成后再执行 gn/ninja
gclient sync
成功后,会自动在 src/buildtools/win/gn/gn.exe
位置生成(或者说下载)可执行文件,你就可以 cd src
然后 gn gen out/...
。gn gen
,肯定会找不到 gn.exe
。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'
"
这次又是遇到了什么错误?
从你贴出的报错信息来看,这次最大的错误点在于脚本 找不到 vcvarsall.bat
,也就是提示:
Exception: D:\Software\Microsoft Visual Studio\2022\Community\VC\vcvarsall.bat is missing - make sure VC++ tools are installed.
简而言之:脚本在构建时需要调用 VC++ 工具集(vcvarsall.bat),但你的指定路径下没有找到该文件,因此报错。
可能没有安装 Visual C++ 相关组件
虽然你已经安装了 VS2022,但有时候只安装了部分组件(比如只安装了 C#/.NET 工作负载,缺少“使用 C++ 的桌面开发”或“使用 C++ 的游戏开发”等),就不会有 vcvarsall.bat
。
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
存在。vcvarsall.bat
并没有被安装。GYP_MSVS_OVERRIDE_PATH 路径不对
你设置的是:
textset 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 工具所在路径不是这里或者层级不同,也会找不到。
检查/补装 VS2022 的 C++ 工具
D:\Software\Microsoft Visual Studio\2022\Community\VC\
目录下应该会看到 vcvarsall.bat
等脚本和二进制。确认路径是否正确
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
或者自己翻到具体位置,确认一下真实所在位置。再次执行 gn gen
D:\Work_and_learn\Code\CPP\WebRTC\webrtc\src
执行 gn gen out\Release-vs2022 --ide=vs2022 --args="..."
。“FileNotFoundError: ... LASTCHANGE.committime”
gclient sync
不完整也有关系,或者是脚本在生成构建信息时用到 build/util/LASTCHANGE
系列文件,却没同步完全。gclient sync
成功),然后在 gn gen 时才可能正常找到并生成 LASTCHANGE.committime
。核心问题: WebRTC 的构建脚本在 Windows 环境下需要 MSVC 的工具链,而脚本没找到 vcvarsall.bat
,说明你还没安装 C++ 工具或者设置的路径不正确。
解决思路:
vcvarsall.bat
存在。GYP_MSVS_OVERRIDE_PATH
指向正确的 VS 根目录结构(让脚本能在其下 VC\vcvarsall.bat
找到对应文件)。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",
"
这次编译又是什么问题?
从这条报错可见,脚本在尝试读取
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
就会报错。
WebRTC/Chromium 同步不完整
gclient sync
过程并未成功结束(中途网络断开、文件拉取失败等),则会造成部分文件或工具缺失。webrtc\src
或者在里面执行 git status
,确认没有残留冲突或没提交的临时文件,然后再次 gclient sync
,让它 无错误地 把所有依赖和脚本都下载到位。缺少 gclient runhooks
步骤
gclient sync
完成后,会提示再运行 gclient runhooks
(或者它自动运行)来执行一些脚本钩子,这些脚本会在 build/util/
生成或更新 LASTCHANGE
等信息。fetch webrtc
+ gclient sync
,但那些操作没有顺利运行到生成 LASTCHANGE.committime
的环节,也会导致后面 gn gen
时找不到文件。确认为代理/网络稳定后再同步
http_proxy
、https_proxy
,让 gclient sync
可以成功一次性下载所有依赖,不再因为超时而被中断。然后再看看 build/util/LASTCHANGE.*
是否出现。webrtc
主目录里存在 .gclient
文件(或者你在更上层 depot_tools\webrtc
下有 .gclient
),并且路径正确。webrtc/src
里执行:
看是否能够顺利完成,没有重试和超时错误。bashgclient sync # 或 gclient sync --force --with_branch_heads --with_tags
让它执行钩子脚本。如果一切顺利,会生成bashgclient runhooks
build/util/LASTCHANGE
等相关文件。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:
git config --global core.filemode false
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算是执行成功了吗?如果没成功又该如何解决这个问题?
从日志可以看出,同步(Syncing projects)本身已经到达 100%,也就是说 所有仓库子模块的源代码都已下载完毕。不过在 执行后续 hooks(也就是 gclient sync 默认会调用的 runhooks 阶段)时,出现了下面的报错:
textvpython3.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” 脚本通常会做一些自动化配置、生成文件、检查环境之类的步骤;一旦出错,可能会导致后续编译时又缺东西(例如某些自动生成的配置/metadata 没生成)。
vpython3.bat
找不到?Chromium/Webrtc 的构建系统默认使用 vpython(“Virtualenv Python”)来隔离 Python 环境。vpython3.bat
是在 Windows 下调用 vpython 的脚本,如果 depot_tools 安装或配置不完善,或者当前命令行环境找不到 vpython3.bat,就会报“系统找不到指定路径”类似的错误。
常见原因包括:
depot_tools 未在 PATH 中
depot_tools
路径在系统的环境变量 PATH
中,并且这个 PATH
是在你现在启动的命令行里生效的。where vpython3.bat
看看能否找到,如果找不到就说明没有被正确加到 PATH。Python / vpython 环境缺失或不完整
vpython
来执行脚本,depot_tools 内部会做一个 virtualenv。其他脚本错误或代理问题
vpython3.bat ...
的过程中,如果内部还需要下载某些东西,而你的代理配置没有在 vpython 环境里生效,也可能报类似错误。但这里看起来更像是 “vpython3.bat” 不在可执行路径或者压根没生成。代码已经拉取完
hooks 执行失败,会导致部分自动步骤没完成
generate_location_tags.py
脚本用来生成某些测试元数据文件,如果缺失,将来编译或测试某些模块时可能再出错。修复方式
where vpython3.bat
如果找不到,就需要 set PATH=%PATH%;D:\...\depot_tools
或在系统高级设置里永久加入。PATH
中可以正常调用 python
。gclient runhooks
webrtc
主目录或 webrtc\src
目录,再执行:
bashgclient runhooks
vpython3.bat
not found 等错误,就算是补齐了缺失的步骤。如果只想跳过这些 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:
git config --global core.filemode false
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”在什么路径下?
当你执行了
gn gen out\Release-vs2022 --ide=vs2022 [ --args=... ]
之后,GN 会在你指定的输出目录(这里是 out\Release-vs2022
)里生成一系列用于 Visual Studio 的工程文件,包括 .sln
、.vcxproj
等。通常最主要的是一个 all.sln
(或者在某些版本下叫 default.sln
、project.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项目中直接运行的报错信息。我想知道该如何解决以上错误?
从这些报错来看,你现在是用 Visual Studio 的 cl.exe(is_clang=false
)去编译,但编译命令里却在引用了 libc++
以及带有类似 "/clang:-O2"
这样的选项。随后在编译 abseil-cpp
、libc++
相关头文件时,出现:
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 编译,这两种编译器的宏定义和选项并不兼容,导致出错。
is_clang=false
,相当于想用 MSVC 自带的 cl.exe + MSVC STLlibc++
带进来,还生成了一些 Clang 风格的编译选项(如 /clang:-O2
),这就造成了冲突。结果就是:MSVC 环境不认识 __BYTE_ORDER__
这些宏,而 libc++
又需要它来判断大小端;再加上 MSVC 不支持 #pragma GCC ...
之类的用法,于是就编译失败。
你要么 在 Windows 上按照官方推荐使用 Clang,要么 用 MSVC 但禁用掉 libc++,改用 MSVC 原生的 STL。具体有两条可选路线:
这样就会使用 clang-cl 当编译器,并正常使用bashgn gen out\Release-vs2022 --ide=vs2022 --args="is_clang=true target_cpu=\"x64\" ...
libc++
。gclient
给你自动下载的 clang 工具链(看你的环境中是不是已经下好了)。out\Release-vs2022\all.sln
,编译就会走 clang-cl 而不是 cl.exe。这通常是 WebRTC/Chromium 在 Windows 的最常见做法,编译选项会统一,加上 “/clang:-O2” 就没问题了,因为 clang-cl 确实能认得这类参数。
如果你 非要 用 MSVC 原生编译器/链接器,并且使用它自带的 STL,那么就需要在 GN args 里显式关闭 WebRTC 的 libc++:
把 is_clang=false
保持不变,但加上:
bashuse_custom_libcxx = false
(或者 WebRTC 的 GN 配置里可能用的是 use_libcxx=false
,名字要查一下实际的 GN 变量。有些教程也提到 rtc_use_custom_libcxx=false
。)
这样它就不会拉取/使用 buildtools/third_party/libc++
,也不会包含那些依赖 _LIBCPP_...
的头文件。
编译过程就会使用 MSVC 自带的 msvcprt.lib
、<vector>
、<string>
等头库。
此时你就不会遇到 __BYTE_ORDER__
这个问题了,因为 MSVC 本身对大小端等宏的管理方式不一样。
注意:
treat_warnings_as_errors=false
,因为 MSVC 一些警告不一定都修复了。_LIBCPP_LITTLE_ENDIAN
手动定义-D__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__
,并且还要屏蔽一堆 #pragma GCC
警告,但后面可能还会遇到更多小麻烦。所以最简单还是按照前面两条“官方路线”来做:要么全 clang,要么全 MSVC(且禁用 libc++)。is_clang=true
(用 clang-cl),这样就和 WebRTC 的默认脚本、libc++ 配置配合无碍。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?
从你贴出的日志看,最后确实只显示了生成 checks.lib
,并没有出现一个叫 “webrtc.lib” 的文件。很多人会有疑问:** “WebRTC 不就是一个库吗?为什么没看到一个 webrtc.lib 呢?”**
实际上,WebRTC 在 Windows 上的 GN/Ninja 构建体系默认会产出一系列静态库(或者动态库),而不一定全部打包成一个单独的 “webrtc.lib”。换句话说,WebRTC 的源码被拆分为若干模块(api、rtc_base、modules、pc、sdk等等),每个模块可能都会链接生成各自的 .lib
文件。
VS 里只编译了其中一个工程/target
如果你在 Visual Studio 的解决方案中选中了某个单独的项目(例如 resource_adaptation_api 或其它),点击“生成”就只会编译与它相关的目标(targets)及其依赖。编译日志里出现了 31 个步骤,对应这部分依赖的源文件。
[31/31] LIB obj/rtc_base/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”(如果它存在的话)。
webrtc\src
目录。这会根据你的 GN 配置把默认 target(往往是“all”)全部编译,包括所有依赖模块。如果一切成功,你会在bashninja -C out\Release-vs2022
out\Release-vs2022\obj\...
里看到许多 .lib
。out\Release-vs2022\all.sln
(或者 GN 生成的其他 .sln),在“解决方案资源管理器”里找到一个类似 “all” 的工程,或 “ALL_BUILD”。rtc_build_examples=false
, rtc_include_tests=false
等等,再手动指定要编译哪些目标。out\Release-vs2022\obj\xxx
目录中,会出现若干 .lib
。你在自己的项目中链接上这些 .lib(以及必要的头文件),即可使用对应功能。is_component_build=false
情况下,可能会生成一个大的 webrtc.lib
,把大部分代码打包在一起。audio_decoder.lib
, video_coding.lib
, rtc_base.lib
等,各自负责不同子模块。如果你确实想要一个统一的大库,可以尝试以下做法(不保证 100% 有效,要看当前分支的 GN 脚本):
bashgn 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,需要你自己再链接/合并。
checks.lib
,说明你这次仅编译了很小一部分 target。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:
git config --global core.filemode false
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:
git config --global core.filemode false
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:
git config --global core.filemode false
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:
git config --global core.filemode false
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:
git config --global core.filemode false
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的编译文档
下面是一份基于你贴出的命令行操作,从拉取(fetch/gclient)到最终编译出 WebRTC 静态库的大致流程整理。由于你在尝试过程中换了好几种参数配置、也遇到过多次网络/环境问题,这里将核心步骤做一个清晰的归纳总结。你可以根据实际需要进行微调。
安装 Visual Studio 2022
vcvarsall.bat
等文件存在。D:\Software\Microsoft Visual Studio\2022\Community
安装 Python 3(如果你没有的话),并在 PATH 中可调用 python
或 python3
。
获取 depot_tools
D:\Work_and_learn\Code\CPP\WebRTC\depot_tools
depot_tools
路径加到环境变量 PATH
,重启命令行生效。配置代理(如需要)
如果在国内,需要科学上网工具;并在命令行设置环境变量(示例):
textset http_proxy=10.15.15.141:20172 set https_proxy=10.15.15.141:20172
这样 fetch
、gclient
、git clone
能走代理下载。
以下步骤在你准备好的空文件夹(例如 D:\Work_and_learn\Code\CPP\WebRTC\webrtc
)下执行:
fetch webrtc
bashfetch --nohooks webrtc
这会创建一个 .gclient
并克隆 webrtc.googlesource.com/src
到 webrtc/src
。
初次同步
bashgclient sync
src/third_party
等),需要时间较长。(如果提示“找不到可用的 VS Toolchain”)显式使用本地VS
DEPOT_TOOLS_WIN_TOOLCHAIN=0
,这样会用你本机安装的 MSVC,而不是去谷歌云拉取编译器。在成功后,你的目录结构大致是:
textD:\Work_and_learn\Code\CPP\WebRTC ├─ depot_tools (你之前下载的) ├─ webrtc ├─ .gclient ├─ src ├─ build ├─ third_party ├─ ...
可以在命令行里执行(或写到脚本里):
bashset 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
DEPOT_TOOLS_WIN_TOOLCHAIN=0
禁用下载谷歌的预编译工具链。vcvarsall.bat
必须能在 ...\Community\VC\
路径下找到,否则说明没安装 C++ 工具集或路径设置不对。src
并执行 gclient runhooks如果前面 gclient sync
有提示某些 Hook 没跑完,可再次执行:
bashcd 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,否则不需要下载。
你多次使用了不同参数进行测试,这里举例两种常见配置。
示例:
bashcd 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++;is_debug=true
。若想用官方推荐 clang-cl,则:
bashgn 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 里。
生成完后,你可以:
会把默认的全部 target(“all”)都编译出来。bashninja -C out\Release-vs2022
out\Release-vs2022
下生成了 .sln
(通常叫 all.sln
或者“default.sln”)。resource_adaptation_api
等,说明只编译了对应子项目;想编完整就选 “全部生成” 或 “all”/“default” target。.obj
和 .lib
会放在 out\Release-vs2022\obj\...
is_component_build=false
,可能合并成少量大库。但也不一定是统一的 “webrtc.lib”;更多时候是拆分成 rtc_base.lib
、media.lib
、video_coding.lib
等。http_proxy
。一些下载脚本可能报“Anonymous caller does not have storage.objects.list...”。.boto
文件。官方文档或社区帖子有更多方案。Exception: ... vcvarsall.bat is missing
,请打开 Visual Studio Installer 并确认已安装C++工作负载。gclient sync
或 gclient runhooks
未生成 build/util/LASTCHANGE*
文件。再次 sync
并 runhooks
直到不再出错,才算成功。depot_tools
在 PATH
中、Python3 安装正确;或者你可以手动把 vpython
安装并放到 PATH。从你的命令历史可见:
bashset http_proxy=10.15.15.141:20172 set https_proxy=10.15.15.141:20172 fetch --nohooks webrtc gclient sync
bashset 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
webrtc/src
,可 gclient runhooks
(若有必要),再 gn gen
:
bashcd webrtc\src gn gen out\Release-vs2022 --ide=vs2022 --args="is_debug=false ... rtc_include_tests=false rtc_build_examples=false"
.sln
编译:
(或者在 VS 中点击“全部生成”)。bashninja -C out\Release-vs2022
最终就得到 .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静态库
下面给出一个 最简示例,演示如何在自己的 C++ 项目中 调用到 WebRTC 的静态库。其中包含:
main.cpp
:演示性地使用到 WebRTC 中的一些函数(例如 SSL 初始化)。CMakeLists.txt
:示例如何包含头文件目录、链接静态库等。请注意,这只是一个非常简化的示例,实际项目中根据你所调用的 WebRTC 模块不同,需要额外包含更多头文件、链接更多静态库。
你可以新建一个测试目录,示例结构如下(可自行调整):
textWebRTCtest/ ├─ 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
请注意:
src
、src/api
、src/rtc_base
等目录。.lib
文件分散在 out\Release-vs2022\obj\xxx\xxx.lib
。根据你需要的模块来决定哪些要链接。ws2_32
, winmm
, secur32
, 等,也要一起链接,否则会出现外部符号无法解析错误。main.cpp
下面这个示例做了两件事:
rtc::InitializeSSL()
/ rtc::CleanupSSL()
来验证链接成功;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 系统库。请根据你实际存放的路径、库名进行修改。
cmakecmake_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 等,可继续添加 )
target_link_libraries
里写哪些具体的 .lib
,要根据你调用的 WebRTC 模块来定。简单起见,这里示范 rtc_base
, system_wrappers
等。如果编译过程中提示缺少符号,可以再补充更多 xxx.lib
。link_directories(...)
指向那儿,然后 target_link_libraries(WebRTCtest foo1 foo2 foo3 ...)
全部写上。但这样会比较多余,也可能产生符号冲突,具体视需要而定。bashcd WebRTCtest
这会在bashcmake -B build -G "Visual Studio 17 2022" .
build
目录下生成 .sln
等工程文件。bashcmake -B build -G "Ninja" .
生成的可执行文件通常在bashcmake --build build --config Release
build/Release/WebRTCtest.exe
(VS情形)或 build/WebRTCtest.exe
(Ninja情形)。或者用 VS 打开bashcd build/Release ./WebRTCtest.exe
build/WebRTCtest.sln
,执行“生成→运行”。若看到输出 Hello, WebRTC static library test!
且进程正常退出,说明已经成功链接到你的 WebRTC 静态库,能够正常调用其函数。
以上就是一个 简单的 C++ + CMake 测试,用于验证你编译的 WebRTC 静态库是否可以被外部工程正常链接与调用。
include_directories
指向 src/
)。.lib
文件(link_directories + target_link_libraries
)。ws2_32
, winmm
, secur32
等)以解决底层 Socket、加密等依赖。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.
”
运行的时候遇到了如上报错信息,这是什么问题?
根据报错信息:
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”。从而导致无法打开文件的错误。
src/
, src/third_party/abseil-cpp/
, src/rtc_base/
, 等等。ssl_adapter.h
)又 #include "absl/strings/string_view.h"
时,编译器必须在它的 -I
路径里找得到 absl/
目录。absl/
子目录就可以被找到。因此,你需要把 WebRTC “src” 以及 “src/third_party/abseil-cpp” 这样的目录添加到 include_directories(...)
或 target_include_directories(...)
中。
假设你的 WebRTC 源码在 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src
,并且 Abseil 位于 .../src/third_party/abseil-cpp/absl/...
,那么可以在 CMakeLists.txt
里做如下修改:
cmakecmake_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” 文件,就能正常包含。
可能还需要更多 include_directories
boringssl
、libyuv
、或别的 third_party 依赖,也要让编译器找得到它们。textinclude_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" # ... )
不同模块需要不同 .lib
api/audio_codecs/...
),还需要在 target_link_libraries
里加对应静态库。ws2_32
, secur32
, winmm
等),否则也会出现链接错误。CMake + WebRTC 的推荐方式
根本原因: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.
”
这又是什么问题?
出现
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=0x0A00
、WEBRTC_ARCH_64_BITS
、WEBRTC_LITTLE_ENDIAN
等),来识别目标平台并启用相应的字节序函数。如果在手动用 CMake 编译时没有带上这些宏定义,rtc_base/byte_order.h
就无法判断系统是小端还是大端,最终抛出这个错误。
-DWEBRTC_WIN -DWIN32_LEAN_AND_MEAN -DWEBRTC_LITTLE_ENDIAN ...
等编译选项。#if
分支匹配失败。可以在 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 位环境,然后正常编译通过。
你也可以去查看 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."
错误。
-DWEBRTC_WIN -DWEBRTC_LITTLE_ENDIAN -DWEBRTC_ARCH_64_BITS
宏来启用正确的字节序函数;你现在的 CMake 工程没定义这些宏,导致 byte_order.h
不知道你是啥平台,就 #error
。这样就能让 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?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?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?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?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?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?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?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?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?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?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?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?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?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@?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@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?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@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@@?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@@?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@?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@?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@?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@?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@?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@?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@?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 *)" (??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 &)" (??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?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?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> > &&)" (??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@?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@?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@?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@?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@?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?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@?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@?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@?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@?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?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?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@?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?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?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@?char_traits@D@__Cr@std@@@__Cr@std@@IEAAXPEAV?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?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?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?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?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 &)" (??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@?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@?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@?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@?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@?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@?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@?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@?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@?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?equal_to@_K@23@__unordered_map_equal@_KU?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@U?equal_to@_K@23@U?00@23@V?__hash_value_type@_KPEAVDispatcher@rtc@@@__Cr@std@@@23@@__Cr@std@@AEAAX_K@Z) 中引用了该符号
WebRTCtest.exe : fatal error LNK1120: 46 个无法解析的外部命令
ninja: build stopped: subcommand failed.
”
这又是什么问题?
从这份庞大的链接错误日志可以看出,你现在遇到的是 C++ 运行时库 / ABI 不匹配 的问题。也就是:
结果导致所有对 std::__Cr::basic_string
、__libcpp_verbose_abort
、std::terminate
等符号的引用无法解析,因为它们来自不同的运行时 / 标准库或不同模式(Debug/Release、/MD vs /MT)。
日志里出现了类似:
LINK : warning LNK4098: 默认库“libcmtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
webrtc.lib
里却依赖的是另一种运行时/标准库(可能是 release 版的 libc++/msvcrt 等)。std::__Cr::...
命名std::__Cr
” 这样的命名空间,往往是 Chromium/Libc++ 中自定义改动过的符号(Chromium 对 libc++ 做了一些定制)。或在相反情况下,如果 webrtc.lib
是用 MSVC STL 编译,而你却加了 use_custom_libcxx=true
,同样也会冲突。
在 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 测试工程又使用了另一种 → 链接报一堆未定义符号。
要让两边的 编译配置 和 运行时库 保持一致。下面几点是常见做法:
在 Release 模式编译并链接
is_debug=false
,那 webrtc.lib 就是 Release 版本。-DCMAKE_BUILD_TYPE=Release
或在 IDE 里选 Release)。否则 Debug vs Release 运行时不匹配,会出现 LNK4098 冲突。在 Debug 模式下统一
is_debug=true
并重新编译;然后你自己的 CMake 工程也用 Debug 模式 (/MDd
) 连接它。相同的 /MD 或 /MT 选项
/MD
/ /MDd
);也可能用 静态 CRT (/MT
/ /MTd
)。若 webrtc.lib 使用了 libc++
c++_static.lib
或类似);或 GN 中设置 use_custom_libcxx=false
以改用 MSVC STL,重新编译 WebRTC,使之与 MSVC 工程兼容。is_clang=false
+ use_custom_libcxx=false
+ treat_warnings_as_errors=false
+ 选对 /MD
or /MT
。这样产生的 webrtc.lib 才是 MSVC STL 版本,没有“std::__Cr
”符号。重编译 WebRTC
bashgn 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
等文件。在 CMake 工程中
libcmtd.lib
冲突,说明你还在用 Debug CRT,请切换到 Release CRT (/MD);或者把 webrtc 也编成 debug /MDd。确认无“__Cr::”符号
'use_custom_libcxx=false'
并 'is_clang=false'
。dumpbin /symbols webrtc.lib
或用 strings webrtc.lib
看是否仍有 __Cr
/ __libcpp_verbose_abort
符号。本质就是“编译和链接两端的C++运行时不匹配”,导致大量“无法解析外部符号”。最常见场景包括:
/MT
静态CRT,但测试程序默认 /MD
动态CRT。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 等
)
set(WEBRTC_INCLUDE_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")
set(WEBRTC_LIB_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/lib")
include_directories(
${WEBRTC_INCLUDE_DIR}
)
include_directories(
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include/third_party/abseil-cpp"
)
link_directories(
${WEBRTC_LIB_DIR}
)
add_executable(WebRTCtest main.cpp)
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.
”
这是现在运行的报错信息,请你分析问题所在并给出解决方案
从报错可以看出:
fatal error C1083: 无法打开包括文件: “absl/numeric/int128_no_intrinsic.inc”: No such file or directory
也就是说,在编译 absl/numeric/int128.h
时,需要引用的 absl/numeric/int128_no_intrinsic.inc
文件没能在包含路径里找到。
目前你在 CMakeLists 里这样写:
cmakeinclude_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include/third_party/abseil-cpp" )
但实际上,WebRTC 源码中的 Abseil 通常位于:
textwebrtc\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
”。
webrtc\src\
并使用原始的 Abseil 目录最简单的做法是:在 CMake 的 include_directories
中把 D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src
加进去。这样 #include "absl/...
就可以在 src/third_party/abseil-cpp/absl/...
下找到一切需要的文件(包括那些 .inc
)。示例:
cmakeinclude_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
,就能成功了。
当然,你也可以专门只写
cmakeinclude_directories( "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp" )
让它能够找到 absl/numeric/...
下所有文件(包含 .inc
)。
webrtc\include\third_party\abseil-cpp
这类“flattened”目录如果你是手动拷贝/flatten 一些头文件去 webrtc\include\...
,那就很可能缺少 .inc
之类。最好直接使用 WebRTC 源码本身的 src/third_party/abseil-cpp
路径来包含所有原始 Abseil 头文件,而不是用 webrtc/include/third_party/abseil-cpp
这种不完整的副本。
有些情况下,如果 gclient sync
不完整,也可能 int128_no_intrinsic.inc
文件压根没拉下。但通常这不会是问题,因为 abseil-cpp 是公共子模块,一般会被完整同步。
int128.h
需要的 .inc
文件无法从 webrtc\include\third_party\abseil-cpp
找到——这个“flattened”include路径中缺失 .inc
。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@?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@?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@?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@?char_traits@D@std@@@std@@QEBAPEAV?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@?char_traits@D@std@@@std@@QEBAPEAV?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@?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@?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@?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@?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.
”
这是修改后再一次运行的报错信息,请你分析问题所在并给出解决方案
从错误日志最醒目的部分可看出,所有未能链接的地方都有类似提示:
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 工程中使用的运行时库模式不一致。
MSVC 下有四种常见的 C++ 运行时选项:
/MD
= 动态库方式链接 VC++ 运行时 (Release)/MDd
= 动态库方式链接 VC++ 运行时 (Debug)/MT
= 静态库方式链接 VC++ 运行时 (Release)/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 不带安全迭代器)。
/MTd
如果你希望使用 WebRTC 的“静态库 + 静态调试CRT”编译方式,则需要在 CMake 中强制 /MTd
:
在 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()
确保工程是 Debug 配置,并且编译后 main.cpp.obj
也使用 MTd_StaticDebug
。
如此就与 “webrtc.lib” 一致,都用 /MTd。
/MDd
如果你想项目继续用 /MDd
(动态调试CRT),就需要在 GN 编译 WebRTC 时禁用静态CRT。一般可以加:
bashgn 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 的参数,确定它用了什么运行时。
根本原因:** webrtc.lib** 与 main.obj 的运行时库模式冲突 —— “MTd_StaticDebug” vs “MDd_DynamicDebug”。
解决:让二者都用同一种 (要么静态CRT,要么动态CRT,且 Debug/Release 一致)。常见做法有:
/MTd
,以匹配现有的 webrtc.lib。/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之后的报错信息,请你分析问题所在并给出解决方案
从日志可见,你已经尝试了方案 A:在 CMake 里强制使用 /MTd,但编译器输出提示:
cl: 命令行 warning D9025 : 正在重写“/MTd”(用“/MDd”)
这说明 你手动加的 /MTd
被其他设置覆盖,实际使用的仍然是 /MDd
(动态调试 CRT)。这就导致链接时再次出现 “MTd_StaticDebug
vs MDd_DynamicDebug
” 的冲突。
/MTd
会被重写成 /MDd
?在 Visual Studio 或 Clion + CMake 的默认配置下,Debug 模式往往会自动使用 /MDd
(动态调试CRT)。你对 CMAKE_CXX_FLAGS_DEBUG
或 CMAKE_MSVC_RUNTIME_LIBRARY
所做的设置,可能并没有生效,或者是被后续规则/配置给覆盖了。例如:
/MDd
;你的自定义 /MTd
选项只是附加上去,但后面被 Clion/VS “重写”。CMake >= 3.15
里想用 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
,却可能被别的地方再次改成 MultiThreadedDLL
(即 /MDd
)。/MDd
;你写在 CMAKE_CXX_FLAGS_DEBUG
中的标志可能没优先级。如果你的 CMake 版本 ≥ 3.15,可以在 CMakeLists.txt
顶部加:
cmakecmake_minimum_required(VERSION 3.15) project(WebRTCtest LANGUAGES CXX) set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd
这样就会在 Debug 模式下使用 /MTd。如果还有别的变量在覆盖,需要再检查。
如果你的 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。
打开 Clion 的“Settings → Build → CMake”里看看有没有额外的 CMake options或默认toolchain选项强行指定了 /MDd
。
-DCMAKE_CXX_FLAGS_DEBUG=/MDd
之类,需要删掉或改掉。最后在“Run → Edit Configurations”中确认 Clion 并没有注入别的 flags(如 /MDd
)。
若一切都做对,则编译输出不再出现“重写 /MTd (用 /MDd)”的提示,就说明你成功让工程使用 /MTd 了。
如果你想保留 Clion 的默认 Debug(/MDd 动态 CRT),那就要让 WebRTC 也编成 /MDd。典型做法是在 GN 参数里:
bashgn 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) 就不会冲突了。
有些人不需要 Debug CRT。只要在 Release 模式下统一即可,比如 WebRTC 用 /MT (或 /MD) + 你的工程也用 /MT(或 /MD)。
这样可以绕过 _ITERATOR_DEBUG_LEVEL=2
等调试符号问题。但你如果想在 Debug 下调试,就不适合此方案。
根源:
set(CMAKE_CXX_FLAGS_DEBUG "/MTd")
却被覆盖,导致冲突依旧。解法:
/MDd
覆盖;可用 set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
(CMake 3.15+),或在老CMake中先移除 /MDd 再加 /MTd,并检查 Clion 的默认toolchain配置。rtc_use_static_cpp_runtime=false
,使 webrtc.lib 与你工程都用 /MDd
。无论哪种,只要两边编译器选项一致,你就不会再收到“_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之后的报错信息,请你分析问题所在并给出解决方案
从最新的报错依然可以看到:“_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”问题原理相同)。
_ITERATOR_DEBUG_LEVEL=0
?在 Chromium/WebRTC 的 GN 构建中,即使 is_debug=true
,也可能通过其他选项/默认脚本禁用 MSVC 的调试迭代器。例如:
is_official_build=true
或某些 GN 默认配置,把 _ITERATOR_DEBUG_LEVEL
设为 0 来保持与 Release 模式 ABI 更一致。_ITERATOR_DEBUG_LEVEL=0
以减少性能损耗、避免二进制不兼容。因此,你在 WebRTC GN 里只写了 is_debug=true use_custom_libcxx=false
,但构建产物里仍然使用 _ITERATOR_DEBUG_LEVEL=0
(禁用安全迭代器),而你的 MSVC 工程 Debug 下默认是 2。
_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 不匹配问题)。
_ITERATOR_DEBUG_LEVEL=2
如果你想保留 MSVC 默认的安全迭代器(=2),那就需要在 WebRTC 编译时指定开启 _ITERATOR_DEBUG_LEVEL=2
。可以:
enable_iterator_debugging=true
或 is_official_build=false
并未强制覆盖 _ITERATOR_DEBUG_LEVEL=0
。_ITERATOR_DEBUG_LEVEL
设为 0。如果你不需要 MSVC 的调试迭代器或断点信息,就直接用 Release 配置:Release 模式下 _ITERATOR_DEBUG_LEVEL
通常是 0,自动与 WebRTC 的 0 匹配,也就不会再出现冲突了。
现在的错误与之前 “/MT vs /MD” 一样,都是编译选项不匹配的问题,本质就是 _ITERATOR_DEBUG_LEVEL
冲突。Chromium/WebRTC 在 Debug 下默认禁用了安全迭代器(=0),而你 CMake + MSVC Debug 缺省 =2。要想链接成功,必须让二者一致:
-D_ITERATOR_DEBUG_LEVEL=0
,以匹配 WebRTC;=2
;只要保证二者相同,就能消除 “值 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
)
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()
set(WEBRTC_INCLUDE_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/include")
set(WEBRTC_LIB_DIR "D:/Work_and_learn/Code/CPP/WebRTC/webrtc/lib")
include_directories(
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src"
"D:/Work_and_learn/Code/CPP/WebRTC/webrtc/src/third_party/abseil-cpp"
)
link_directories(
${WEBRTC_LIB_DIR}
)
add_executable(WebRTCtest main.cpp)
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
)”
“
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")
下面分 两大部分 来解释:第一部分是关于 CMakeLists.txt 中的编译器选项与宏定义,第二部分是为什么要使用 WebRTC 源码真实目录 来包含头文件,而不是去拷贝一份头文件。
在这份 CMakeLists.txt 中,你能看到:
cmakeset(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()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug") # /MTd
"MultiThreadedDebug"
对应 /MTd
(静态链接调试 CRT)。"MultiThreaded"
(/MT)、"MultiThreadedDLL"
(/MD)、"MultiThreadedDebugDLL"
(/MDd)等。/MTd
,与 WebRTC 保持一致,避免运行时库冲突。add_definitions(...)
中的一系列宏-DWEBRTC_WIN
、-DWIN32_LEAN_AND_MEAN
、-DNOMINMAX
、-DWEBRTC_LITTLE_ENDIAN
、-DWEBRTC_ARCH_64_BITS
、-D_WIN32_WINNT=0x0A00
等:
WEBRTC_WIN
、WEBRTC_ARCH_64_BITS
来启用/禁用对应的代码路径。如果不定义,可能会报 “missing byte order functions” 或不识别 Windows 平台。WIN32_LEAN_AND_MEAN
、NOMINMAX
则是常见的 Windows 宏,用于减少 Windows 头文件包含的内容,以及避免 min()
/max()
宏冲突。-D_HAS_ITERATOR_DEBUGGING=0
、-D_ITERATOR_DEBUG_LEVEL=0
:
_ITERATOR_DEBUG_LEVEL=2
(启用安全迭代器,能检查越界等)。_ITERATOR_DEBUG_LEVEL=0
编译,你的工程却是 _ITERATOR_DEBUG_LEVEL=2
,就会出现 LNK2038: mismatch detected
之类的错误。通过显式设为 0,可以匹配 WebRTC 的设置。_CRT_SECURE_NO_WARNINGS
是 MSVC 在使用一些 “不安全函数”(sprintf
、strcpy
等)时去掉安全警告的常用宏。if(MSVC) ... set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") ...
CMAKE_MSVC_RUNTIME_LIBRARY
,就只能手动往编译器标志里追加 /MTd
。set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDebug")
更直观地设置。在这份 CMakeLists 中,你用了:
cmakeinclude_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")
。
.inc
、子目录层级.inc
文件、或多层目录下的头文件。.inc
或其他私有头文件(比如 absl/numeric/int128_no_intrinsic.inc
)。编译时就会出现 #include
找不到文件的错误。webrtc/include/
,但并不一定完整。webrtc/include/
里webrtc/src/third_party/abseil-cpp/absl/...
下,某些 .inc
文件只存在原始目录。.h
到 webrtc/include/third_party/abseil-cpp/
, 未必把 .inc
同步过来。No such file or directory: "absl/numeric/int128_no_intrinsic.inc"
之类。.inc
/子目录,而不必人工拷贝。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 宏冲突等。为什么要直接包含 webrtc/src
而不从 “include/” 文件夹复制头文件:
.inc
文件,如果只复制 .h
,容易丢失或不完整;