0

我只是在构建 Chromium 窗口。它可以完美构建并且适用于我尝试的每种配置。当我修改源代码时,将其包含在 select_file_picker_win.cpp

#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_window.h"
#include "content/public/browser/navigation_controller.h"

不起作用。

问题是它无法链接到生成的对象。未解析的符号 browser.create

我尝试了不同的链接器、不同的编译器、不同的 gn gen 配置,等等。

我需要在哪里告诉 gn 或 ninja 以在链接此文件时添加此对象?

当我在 out 文件夹中修改与 selectfile 相关的 ninja 文件时,发生了一些变化。错误变成了循环冗余问题,并且文件无论如何都会被覆盖,所以我知道这不是正确的解决方案。

lld-link: ←[0;31merror: ←[0mundefined 符号: public: __cdecl Browser::CreateParams::CreateParams(enum Browser::Type, class Profile *, bool)

编辑:

我修改了 BUILD.gn 来添加这个:

deps = [
        "//base",
        "//base:i18n",
        "//build:chromeos_buildflags",
        "//skia",
        "//ui/base",
        "//ui/strings",
        "//url",
        "//chrome/browser",
        
      ]

allow_circular_includes_from = [
    "//chrome/browser",
]

但是来自 chrome/browser 的 BUILD.gn 包括以前的,所以我预计会有循环冗余。我有它:

ERROR 依赖循环: //content:content ->
//content/gpu:gpu_sources -> //content/child:child ->
//content/common:common -> //ui/shell_dialogs:shell_dialogs ->
//chrome /browser:browser -> //apps:apps ->
//components/keyed_service/content:content ->
//content/public/browser:browser -> //content:content

失败:build.ninja

所以我添加了这个:

allow_circular_includes_from = [
    "//chrome/browser/devtools",
    "//chrome/browser/profiling_host",
    "//chrome/browser/ui",
    "//chrome/browser/ui/webui/bluetooth_internals",
    "//chrome/browser/storage_access_api:permissions",
    "//chrome/browser/safe_browsing",
    "//chrome/browser/safe_browsing:verdict_cache_manager_factory",
    "//chrome/browser/safe_browsing:advanced_protection",
    "//chrome/browser/safe_browsing:metrics_collector",
    "//ui/shell_dialogs",
    
[0/1] Regenerating ninja files
ERROR Dependency cycle:
  //content:content ->
  //content/gpu:gpu_sources ->
  //content/child:child ->
  //content/common:common ->
  //ui/shell_dialogs:shell_dialogs ->
  //chrome/browser:browser ->
  //apps:apps ->
  //components/keyed_service/content:content ->
  //content/public/browser:browser ->
  //content:content

FAILED: build.ninja
../../buildtools/win/gn.exe --root=../.. -q --ide=vs --regeneration gen .
ninja: error: rebuilding 'build.ninja': subcommand failed
4

0 回答 0