如何在 chromium 的 gn 文件中包含共享库?

2023-12-10

(Q1)我有一个测试。所以有一些我需要使用的功能。我已经调查了一段时间但没有答案。有人可以建议如何在 chromium 项目的 gn 文件中包含共享库吗?非常感谢。

以下是我的 gn 文件的内容:

import("//third_party/WebKit/Source/core/core.gni")

blink_core_sources("frame") {
 sources = [
    "csp/CSPSource.h",
    "csp/ContentSecurityPolicy.cpp",
    "csp/ContentSecurityPolicy.h",
    "csp/MediaListDirective.cpp",
    "csp/MediaListDirective.h",
    "csp/SourceListDirective.cpp",
    "csp/SourceListDirective.h",

    // my created file
    "HelloWorld.h",
    "HelloWorld.cpp",   // Will use the function of provided in add.so
    "add.h"
  ]

  deps = [ ":add.so" ]

}

(Q2)另一个问题是:如果我有add.so的源代码,我应该如何在gn中编写才能使用共享库的源代码?谢谢。


(Q1)任何人都可以对如何在 chromium 项目的 gn 文件中包含共享库有一些建议吗?

通常您可以指定库目录lib_dirs和图书馆libs. Your BUILD.gn文件可以是这样的:

import("//third_party/WebKit/Source/core/core.gni")

blink_core_sources("frame") {
 sources = [
    "csp/CSPSource.h",
    "csp/ContentSecurityPolicy.cpp",
    "csp/ContentSecurityPolicy.h",
    "csp/MediaListDirective.cpp",
    "csp/MediaListDirective.h",
    "csp/SourceListDirective.cpp",
    "csp/SourceListDirective.h",

    // my created file
    "HelloWorld.h",
    "HelloWorld.cpp",   // Will use the function of provided in add.so
    "add.h"
  ]

  lib_dirs = [ "//path/to/add.so" ]
  libs = [ "add" ]

}

(Q2)如果我有add.so的源代码,我应该如何在gn中编写才能使用共享库的源代码?

如果你想从add.so的源代码中获取共享库,你可以写一个BUILD.gn像这样的文件:

shared_library("libadd.so") {
  include_dirs = []
  sources = [
    "/path/to/sources",
  ]
}

您可以使用gn help shared_library更多细节。

然后就可以像Q(1)一样使用共享库了。

最后推荐大家使用gn help查看有关 gn 构建系统的更多详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 chromium 的 gn 文件中包含共享库? 的相关文章

  • 使用 chrome 进行 OfflineAudioContext FFT 分析

    我正在尝试构建一个波形生成器 它获取音频文件幅度值并在 JavaScript 中尽快 比实时更快 将它们显示到画布上 所以我使用 OfflineAudioContext webkitOfflineAudioContext 加载文件并开始分析
  • 如何为armv6、armv7和i386编译静态库(fat)

    我知道这个问题已经被提出过好几次了 但我的目标与我在网上搜索到的内容略有不同 具体来说 我已经能够为 iPhone 构建静态库 但我能够构建的最终 fat 文件仅包含arm和i386架构 并且我不确定arm指的是 v6还是v7 我无法专门针
  • 分发Windows C++库:如何决定是创建静态库还是动态库?

    我们一直在将 Java 和 NET API 库转换为 C 并试图找出将编译版本分发给其他开发人员以与他们的自定义应用程序一起使用的最佳方法 应该是静态库还是动态库 我们需要为 Win32 和 Win64 创建 我想每个目标操作系统都有调试版
  • Android.mk 包含其他项目

    说明 我的问题的目标是了解如何创建一个可以构建和运行的 Android mk makefile 如下所示的项目结构 Library is library on eclipse 数据 项目库 Project Interface 包含 1 个静
  • 如何修复 Visual C++ 2010 中静态库项目中的警告 MSB8012?

    我正在尝试将静态库从 VC 2008 转换为 VC 2010 我得到 这些关于 TargetPath 和 TargetName 的警告 我查看了我的配置 我不知道如何让这些消失 对于我通常构建一次并且很少重建的静态库来说 这是严重的还是真的
  • 在 Mac osx 中将 .a 转换为 .dylib

    是否可以在 Mac osx 中将 a 文件转换为 dylib 文件 我目前有libraryname a 它似乎无法将其包含在我的程序中 因为仅包含 dylib 库 还有一个命令可以通过 mac osx 终端显示程序中使用的静态库吗 是的 这
  • 使共享库可供多个应用程序使用的最佳方法是什么?

    与大多数商店一样 我们有一个团队负责各种项目 他们都需要访问与我们业务相关的相同核心信息和功能 通常使用 C 语言 目前 我们只是将公共类从一个项目复制到另一个项目 但每个人都开始有自己的风格 我们希望进行整合 我们使用 Tortoise
  • 调用程序中对库类成员的未定义引用错误

    下面添加了其他问题 2011 年 4 月 11 日 我正在用 C 开发一组跨平台的共享库 DLL Sos 和测试程序 尽管我必须能够支持 C 这些库将仅作为目标代码发布 但测试程序将随源代码一起发布 因此我们的客户可以获得示例代码 因此 我
  • 通过 bash 调用应用程序时忽略 dyld_insert_libraries

    对于我的应用程序 我使用 DYLD INSERT LIBRARIES 来切换库 我运行的是 Mac OS X El Capitan 如果我在 shell 中设置这些环境变量 export PYTHONHOME HOME anaconda e
  • Libsourcey 缺少 -fPIC 编译错误

    我正在尝试运行 LibSourcey 以使用 Webrtc 流服务器 问题是我似乎无法让它发挥作用 我努力在我的 Ubuntu 16 04 上 cmake 该项目 cmake 文件中的正则表达式 但现在它已修复 我实际上遇到的问题是编译时的
  • 为什么我的 Linux 应用程序引入了错误的 .so 库?

    我正在构建一个使用 NetCDF C 库的应用程序 并且 NetCDF 正在引入 HDF 4 库 然而 它正在拉动wrongHDF 4 库 我的应用程序的链接方式如下 apps1 intel bin icpc gxx name apps1
  • 为dlib创建共享库

    按照说明使用 cmake 编译 dlib here http dlib net compile html 生成静态 dlib 库 cd examples mkdir build cd build cmake cmake build conf
  • WebUSB 和 RFID 读取器

    我想知道是否有人有让 RFID 读取器通过 WebUSB 工作的经验 我使用的阅读器是https www parallax com product 28340 https www parallax com product 28340 根据我
  • 如何在我的项目中使用 FFTW DLL 导入库 .lib 作为静态 .lib?

    我了解 C 和编译小型插件 始终基于类似且布局的工作流程 虽然目前我需要将最新版本的 FFTW 编译成静态库 或者从编译版本中获取它 这应该会容易得多 但这给了我一个非常困难的时间 可能是因为我不知道编译的来龙去脉 请注意 我正在使用 Vi
  • C++ 将枚举值捕获为异常

    我正在尝试使用external C 库将其异常定义为 enum MY ERRORS ERR NONE 0 ERR T1 ERR T2 然后在代码中抛出异常是这样的 if throw ERR T1 作为 C 编程新手 我会这样做 try ca
  • Xcode 找不到我的静态库!

    这是链接器错误 i686 apple darwin10 gcc 4 2 1 Users william Documents SettingsLibrary build Debug iphonesimulator libSettingsLib
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a
  • 在不支持线程的程序加载的共享库中使用 C++11 多线程

    我目前正在尝试在共享库中使用 C 11 多线程 该库加载到 Linux 上的主程序 用 C 编写 中 这是一个大型模拟程序的一部分 我无法更改有关库加载的任何内容或更改一般的主程序 主程序是用 gcc 4 1 2 编译的 我没有它的源代码
  • Chromium 嵌入式框架支持 HTML5 音频吗?

    我一直在玩 CefSharp 但似乎无法播放任何音频 我可以让音频控件出现 但它们保持冻结状态 这些是我使用的版本 Chromium 21 0 1180 0 CEF r728 CefSharp 0 12 4596 50 我先尝试了 mp3
  • 使用 Gas 生成与位置无关的代码 (-fPIC)

    我尝试在 x86 64 上创建共享库但失败 问题归结为以下代码 请不要介意 它没有多大意义 section data newline ascii n section text globl write newline type write n

随机推荐