f32by / dumb-browser

Dumb Browser - A custom chromium build inspired by ungoogled-chromium and Brave.
GNU General Public License v3.0
41 stars 12 forks source link

出现编译错误 #4

Open Badonti opened 3 years ago

Badonti commented 3 years ago

系统配置信息: OS: Windows 10 21H1 Using CMD.exe according to Google's docs Python: 3.9.6 Visual Studio 2019 and Windows 10 SDK 10.0.19041+

第一处编译错误 :

ninja: Entering directory `out/Release'
[1/13] CXX obj/chrome/utility/utility/services.obj
FAILED: obj/chrome/utility/utility/services.obj
..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /showIncludes:user "-imsvcC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\include" "-imsvcC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include" "-imsvcC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-imsvcC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-imsvcC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-imsvcC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-imsvcC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-imsvcC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" -DUSE_AURA=1 -DOFFICIAL_BUILD "-DCR_CLANG_REVISION=\"llvmorg-13-init-10392-gd3676d4b-2\"" -D_HAS_NODISCARD -D_LIBCPP_ABI_UNSTABLE -D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D_LIBCPP_ENABLE_NODISCARD -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS -D_LIBCPP_NO_AUTO_LINK -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_VB -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DWEBP_EXTERN=extern -DUSE_EGL -DVK_USE_PLATFORM_WIN32_KHR -D_WTL_NO_AUTOMATIC_NAMESPACE -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_CHROMIUM_ICU=1 -DU_ENABLE_TRACING=1 -DU_ENABLE_RESOURCE_TRACING=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DSK_UNTIL_CRBUG_1187654_IS_FIXED -DSK_CODEC_DECODES_PNG -DSK_CODEC_DECODES_WEBP -DSK_ENCODE_PNG -DSK_ENCODE_WEBP "-DSK_USER_CONFIG_HEADER=\"../../skia/config/SkUserConfig.h\"" -DSK_GL -DSK_CODEC_DECODES_JPEG -DSK_ENCODE_JPEG -DSK_HAS_WUFFS_LIBRARY "-DSK_VULKAN_HEADER=\"../../skia/config/SkVulkanConfig.h\"" -DSK_VULKAN=1 -DSK_SUPPORT_GPU=1 "-DSK_GPU_WORKAROUNDS_HEADER=\"gpu/config/gpu_driver_bug_workaround_autogen.h\"" -DGR_GL_FUNCTION_TYPE=__stdcall -DVK_USE_PLATFORM_WIN32_KHR -DV8_USE_EXTERNAL_STARTUP_DATA -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DWEBRTC_ENABLE_AVX2 -DRTC_ENABLE_WIN_WGC -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_WIN -DABSL_ALLOCATOR_NOTHROW=1 -DWEBRTC_USE_BUILTIN_ISAC_FIX=0 -DWEBRTC_USE_BUILTIN_ISAC_FLOAT=1 -DWEBRTC_HAVE_SCTP -DNO_MAIN_THREAD_WRAPPING -DLEVELDB_PLATFORM_CHROMIUM=1 -DLEVELDB_PLATFORM_CHROMIUM=1 -DV8_COMPRESS_POINTERS -DV8_COMPRESS_POINTERS_IN_SHARED_CAGE -DV8_31BIT_SMIS_ON_64BIT_ARCH -DV8_DEPRECATION_WARNINGS -DCPPGC_CAGED_HEAP -I../.. -Igen -I../../third_party/perfetto/include -Igen/third_party/perfetto/build_config -Igen/third_party/perfetto -I../../third_party/libwebp/src -I../../third_party/libyuv/include -I../../third_party/jsoncpp/source/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/khronos -I../../gpu -Igen/third_party/dawn/src/include -I../../third_party/dawn/src/include -I../../third_party/wtl/include -Igen -I../../third_party/abseil-cpp -I../../third_party/boringssl/src/include -I../../third_party/protobuf/src -Igen/protoc_out -Igen -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/skia -I../../third_party/wuffs/src/release/c -I../../third_party/vulkan/include -I../../third_party/vulkan-deps/vulkan-headers/src/include -I../../third_party/protobuf/src -Igen/net/third_party/quiche/src -I../../net/third_party/quiche/overrides -I../../net/third_party/quiche/src/common/platform/default -I../../net/third_party/quiche/src -I../../third_party/webrtc_overrides -I../../third_party/webrtc -Igen/third_party/webrtc -I../../third_party/mesa_headers -I../../third_party/libwebm/source -I../../third_party/leveldatabase -I../../third_party/leveldatabase/src -I../../third_party/leveldatabase/src/include -I../../v8/include -Igen/v8/include -Igen/third_party/metrics_proto -I../../third_party/zlib -Igen -Igen/components/policy/proto -Igen/third_party/private_membership/src -Igen/third_party/shell-encryption/src -Igen/components/policy/proto -I../../third_party/re2/src -Igen -Igen -fno-delete-null-pointer-checks -fno-ident -fcolor-diagnostics -fmerge-all-constants -fcrash-diagnostics-dir=../../tools/clang/crashreports -mllvm -instcombine-lower-dbg-declare=0 -flto=thin -fsplit-lto-unit -fwhole-program-vtables -fcomplete-member-pointers /Gy /FS /bigobj /utf-8 /Zc:twoPhase /Zc:sizedDealloc- /D__WRL_ENABLE_FUNCTION_STATICS__ -fmsc-version=1916 -m64 -msse3 -Xclang -fdebug-compilation-dir -Xclang . -no-canonical-prefixes /W4 -Wimplicit-fallthrough -Wunreachable-code -Wthread-safety -Wextra-semi /WX /wd4091 /wd4127 /wd4251 /wd4275 /wd4312 /wd4324 /wd4351 /wd4355 /wd4503 /wd4589 /wd4611 /wd4100 /wd4121 /wd4244 /wd4505 /wd4510 /wd4512 /wd4610 /wd4838 /wd4995 /wd4996 /wd4456 /wd4457 /wd4458 /wd4459 /wd4200 /wd4201 /wd4204 /wd4221 /wd4245 /wd4267 /wd4305 /wd4389 /wd4702 /wd4701 /wd4703 /wd4661 /wd4706 /wd4715 -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-unneeded-internal-declaration -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-psabi -Wno-ignored-pragma-optimize -Wno-implicit-int-float-conversion -Wno-final-dtor-non-final-class -Wno-builtin-assume-aligned-alignment -Wno-deprecated-copy -Wno-non-c-typedef-for-linkage -Wno-max-tokens /O1 /Ob2 /Oy- /Zc:inline /Gw /Oi -ftrivial-auto-var-init=pattern /guard:cf,nochecks /MT -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang checked-ptr-as-trivial-member -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -DPROTOBUF_ALLOW_DEPRECATED=1 -Wno-shorten-64-to-32 -Wno-trigraphs /TP /wd4577 /GR- -I../../buildtools/third_party/libc++/trunk/include -Wno-deprecated-declarations /c ../../chrome/utility/services.cc /Foobj/chrome/utility/utility/services.obj /Fd"obj/chrome/utility/utility_cc.pdb"
../../chrome/utility/services.cc(147,27): error: use of undeclared identifier 'quarantine'
    mojo::PendingReceiver<quarantine::mojom::Quarantine> receiver) {
                          ^
../../chrome/utility/services.cc(148,39): error: use of undeclared identifier 'quarantine'
  DCHECK(base::FeatureList::IsEnabled(quarantine::kOutOfProcessQuarantine));
                                      ^
../../chrome/utility/services.cc(149,27): error: use of undeclared identifier 'quarantine'
  return std::make_unique<quarantine::QuarantineImpl>(std::move(receiver));
                          ^
3 errors generated.
ninja: build stopped: subcommand failed.

(这里贴的结果是最后发现无法通过编译,把文件还原之后复现的,services.cc 是在早期编译过程中就卡住了)

根据如上报错,我查找了 patch 文件,发现 https://github.com/f32by/dumb-browser/blob/3c759f47c57e134c095a910e0c1750bb06e53ec1/patches/chrome%40utility%40services.cc.patch#L9-L11 删去了相关的头文件导致这个报错,所以修改了 chrome/utility/services.cc,重新包含了头文件。这一步编译不再报错,可以正常编译 services.cc。

但是这样修改后,到最后编译的步骤时,会出现如下问题:

ninja: Entering directory `out/Release'
[4/13] LINK(DLL) chrome.dll chrome.dll.lib chrome.dll.pdb
FAILED: chrome.dll chrome.dll.lib chrome.dll.pdb
ninja -t msvc -e environment.x64 -- ..\..\third_party\llvm-build\Release+Asserts\bin\lld-link.exe /OUT:./chrome.dll /nologo -libpath:..\..\third_party\llvm-build\Release+Asserts\lib\clang\13.0.0\lib\windows "-libpath:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x64" "-libpath:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64" "-libpath:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64" "-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64" "-libpath:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64" /IMPLIB:./chrome.dll.lib /DLL /PDB:./chrome.dll.pdb @./chrome.dll.rsp
lld-link: error: undefined symbol: void __cdecl dumb::RemoveTrackableSecurityHeadersForThirdParty(class GURL const &, class url::Origin const &, class net::HttpResponseHeaders const *, class scoped_refptr<class net::HttpResponseHeaders> *)
>>> referenced by ../../dumb/browser/net/dumb_request_handler.cc
>>>               obj/dumb/browser/net/net/dumb_request_handler.obj

lld-link: error: undefined symbol: public: __cdecl safe_browsing::WebApiHandshakeChecker::~WebApiHandshakeChecker(void)
>>> referenced by ../../chrome/browser/chrome_content_browser_client.cc
>>>               obj/chrome/browser\browser/chrome_content_browser_client.obj

lld-link: error: undefined symbol: public: __cdecl quarantine::QuarantineImpl::QuarantineImpl(class mojo::PendingReceiver<class quarantine::mojom::Quarantine>)
>>> referenced by ../../chrome/utility/services.cc
>>>               obj/chrome/utility\utility/services.obj

lld-link: error: undefined symbol: public: static char const *const quarantine::mojom::Quarantine::Name_
>>> referenced by ../../chrome/utility/services.cc
>>>               obj/chrome/utility\utility/services.obj
ninja: build stopped: subcommand failed.