arm cef3 linux 编译_CEF3 应用程序布局

CEF3 在不同操作系统上的资源布局各有特点。在Windows上,资源默认与可执行文件同级,可通过CefSettings自定义位置。Linux中,libcef.so位置取决于编译时的rpath。Mac OS X采用app bundles结构,不那么灵活。通过结构体CefSettings,开发者可定制CEF库和资源的位置。
摘要由CSDN通过智能技术生成

应用资源布局依赖于平台,有很大的不同。比如,在Mac OS X上,资源布局必须遵循特定的app bundles结构;Window与Linux则更灵活,允许定制CEF库文件与资源文件所在的位置。为了获取到特定可以正常工作的示例,可以从工程的下载页面下载到一个client压缩包。每个平台对应的README.txt文件详细说明了哪些文件是可选的,哪些文件是必须的。

Windows操作系统(Windows)

在Windows平台上,默认的资源布局将libcef库文件、相关资源与可执行文件放置在同级目录,文件夹结构大致如下:

Application/

cefclient.exe <= cefclient application executable

libcef.dll <= main CEF library

icudt.dll <= ICU unicode support library

ffmpegsumo.dll <= HTML5 audio/video support library

libEGL.dll, libGLESv2.dll, … <= accelerated compositing support libraries

cef.pak, devtools_resources.pak <= non-localized resources and strings

locales/

en-US.pak, … <= locale-specific resources and strings

使用结构体CefSettings可以定制CEF库文件、资源文件的位置(查看README.txt文件获取更详细的信息)。虽然在Windows平台上,cefclient项目将资源文件以二进制形式编译进cefclient.rc文件,但是改为从文件系统加载资源也很容易。

Linux操作系统(Linux)

在Linux平台上,默认的资源布局将libcef库文件、相关资源与可执行文件放置在同级目录。注意:在编译的版本与发行版本应用程序中,libcef.so的位置是有差异的,此文件的位置取决于编译可执行程序时,编译器rpath的值。比如,编译选项为“-Wl,-rpath,.”(“.”意思是当前文件夹),这样libcef.so与可执行文件处于同级目录。libcef.so文件的路径可以通过环境变量中的“LD_LIBRARY_PATH”指定。

Application/

cefclient <= cefclient application executable

libcef.so <= main CEF library

ffmpegsumo.so

cef.pak, devtools_resources.pak <= non-localized resources and strings

locales/

en-US.pak, … <= locale-specific resources and strings

files/

binding.html, … <= cefclient application resources

使用结构体CefSettings可以定制CEF库文件、资源文件(查看README.txt文件或者本文中CefSettings部分获取更详细的信息)。

Mac X平台(Mac OS X)

在Mac X平台上,app bundles委托给了Chromium实现,因此不是很灵活。文件夹结构大致如下:

cefclient.app/

Contents/

Frameworks/

Chromium Embedded Framework.framework/

Libraries/

ffmpegsumo.so <= HTML5 audio/video support library

libcef.dylib <= main CEF library

Resources/

cef.pak, devtools_resources.pak <= non-localized resources and strings

*.png, *.tiff <= Blink image and cursor resources

en.lproj/, … <= locale-specific resources and strings

libplugin_carbon_interpose.dylib <= plugin support library

cefclient Helper.app/

Contents/

Info.plist

MacOS/

cefclient Helper <= helper executable

Pkginfo

cefclient Helper EH.app/

Contents/

Info.plist

MacOS/

cefclient Helper EH <= helper executable

Pkginfo

cefclient Helper NP.app/

Contents/

Info.plist

MacOS/

cefclient Helper NP <= helper executable

Pkginfo

Info.plist

MacOS/

cefclient <= cefclient application executable

Pkginfo

Resources/

binding.html, … <= cefclient application resources

列表中的“Chromium Embedded Framework.framework”,这个未受版本管控的框架包含了所有的CEF库文件、资源文件。使用install_name_tool与@executable_path,将cefclient,cefclient helper等可执行文件,连接到了libcef.dylib上。

应用程序cefclient helper用来执行不同特点、独立的进程(Renderer,plugin等),这些进程需要独立的资源布局与Info.plist等文件,它们没有显示停靠图标。用来启动插件进程的EH Helper清除了MH_NO_HEAP_EXECUTION标志位,这样就允许一个可执行堆。只能用来启动NaCL插件进程的NP Helper,清除了MH_PIE标志位,这样就禁用了ASLR。这些都是tools文件夹下面,用来构建进程脚本的一部分。为了理清脚本的依赖关系,更好的做法是检查发行版本中的Xcode工程或者原始文件cefclient.gyp。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值