1.Facebook Open Platform编译FAQ
2.V神:不同类型 ZK-EVM 的源译未来
3.我在fedora安装linuxQQ的时候出现这些问题
4.21.Android框架结构
5.Wayland发展前景
6.å¦ä½å¨Windowsä¸ç¼è¯Objective-C
Facebook Open Platform编译FAQ
1:下载源码:/fbopen/
2:根据readme的说明,把fbml所需的码编软件下载到dependencies目录下
3:fbml的php扩展的编译,本身有个脚本,源译不过一般情况下都不能顺利通过那脚本编译成功
错误提示1:
gconvert.c::2: error: #error GNU libiconv not in use but included iconv.h is 码编from libiconv
解决办法:
修改build-all.py
'glib-2..6.tar.gz': ("./configure", "make", "sudo make install"),
改成
'glib-2..6.tar.gz': ("./configure --with-libiconv=gnu", "make", "sudo make install"),
错误提示2:
nspr4 -lpthread -ldl -L../../dist/bin -lmozjs -L/usr/local/lib -lgtk-x-2.0 -lgdk-x-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -L/usr/local/lib -lcairo -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::Destroy()':
: undefined reference to `XFreePixmap'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XRenderFindStandardFormat'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XListPixmapFormats'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XFree'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xd): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XCreatePixmap'
collect2: ld returned 1 exit status
gmake[3]: *** [libgklayout.so] Error 1
gmake[3]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout/build'
gmake[2]: *** [libs] Error 2
gmake[2]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla/layout'
gmake[1]: *** [tier_9] Error 2
gmake[1]: Leaving directory `/usr/home/yunfeng/facebook/facebook/fb-open-platform/libfbml-1.2.0/dependencies/mozilla'
make: *** [default] Error 2
解决办法:
修改dependencies/mozilla/layout/build/Makefile.inifdef
MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / $(NULL)
改成ifdef MOZ_ENABLE_GTK2EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS) / -L/usr/XR6/lib -lX -lXrender / $(NULL)
这个错误一般发生在firefox编译的时候,我一般都手动解压缩firefox软件,源译然后修改Makefile.in,码编分润宝源码然后在build-all.py中屏蔽解压缩firefox的源译语句就行
错误提示3:
In file included from js/jsarena.c::
js/jsbit.h:: error: size of array 'js_static_assert_line_' is negative
make[1]: *** [js/jsarena.o] Error 1
make: *** [src] Error 2
解决办法:
修改 src/js/jsbit.h 第行
S_STATIC_ASSERT(sizeof(unsigned long long) == sizeof(JSUword));
改成
S_STATIC_ASSERT(sizeof(unsigned long) == sizeof(JSUword));
这个错误发生在firefox编译成功后,进行fbml的码编编译时候发生的,如果你用build-all.py编译,源译不想进行前面的码编编译,可以根据脚本屏蔽前面的源译编译。
V神:不同类型 ZK-EVM 的码编未来
近期,众多“ZK-EVM”项目相继发布公告。源译Polygon已开放了ZK-EVM项目,码编ZKSync推出了ZKSync 2.0计划,源译而较新的Scroll也公布了ZK-EVM。此外,Nicolas Liochon等团队在隐私和拓展探索方面持续努力,包括从EVM到Starkware的zk友好语言Cairo的alpha编译器。本文将探讨EVM等价性的不同分类,以及每种类型的优势与成本。 包括: 完全等效于以太坊(类型1):这类ZK-EVM力求与以太坊完全等效,webrtc源码大全不改变任何部分以简化生成证明。它们不包括哈希、状态树、交易树或共识逻辑。 完全等效EVM(类型2):这类ZK-EVM在内部与EVM完全一致,但在外部有细微差别,如块结构和状态树。它们旨在与现有应用完全兼容,通过一些修改简化生成证明。 类型2.5(与EVM等同,不包含gas费用):通过增加特定操作的费用成本,显著改善验证时间,同时可能牺牲一些兼容性。 几乎等同于EVM(类型3):这类ZK-EVM牺牲部分功能以实现更快的验证时间,与大多数应用兼容,但需进行少量重写。 相当于高级语言(类型4):这类系统直接使用高级语言(如SOLIDITY、VYPER)编写的智能合约源代码,编译成zk-Snark友好语言。 总体而言,这些分类代表了在编码难度与兼容性与验证时间之间权衡的股市源码编写不同方向。每个类型都有其适用场景,有助于推动ZK-EVM领域的发展。然而,实现类型1 ZK-EVM,通过改进ZK-EVM和以太坊本身使其更适合zk-Snark,是未来的发展目标。我在fedora安装linuxQQ的时候出现这些问题
可以看到,安装过程中,系统提示说,lib……is needed by linuxqq-v1.0.2-beta1.i.
这是一个依赖问题。
以lib开头的文件都是一些库函数。
你下载的qq rpm包是没有问题的,关键是你的系统有问题。
可能你安装系统时不是完全安装,所以库函数装的不是很全,这就导致在日后安装软件时产生包依赖问题。
说实话,我对包依赖问题最头疼了,尤其是没有自动解决这个问题的工具的时候。
RedHat产品这方面做的不是很好。
建议试一下Debian,当天均价源码它的APT管理很方便。
不过,如果你不觉得麻烦的话,并且时间允许的条件下,可以把那些依赖的库函数一个一个下载下来,给安装上去,再安装linuxqq-v1.0.2-beta1.i这个包。
还有,通过源代码编译安装也不需要照顾库函数的依赖问题了。
我对RedHat不是很熟悉,毕竟没有使用Fedora多长时间,似乎其中yum这个工具可以自动解决包依赖问题,具体命令就不晓得了。
如果不能从我这里得到解决办法的话,就再查查资料,研究研究!
--QGZ
.Android框架结构
Android操作系统基于Linux内核,由Google公司和开放手机联盟共同研发,广泛应用于移动设备如智能手机和平板电脑。该系统采用自由及开放源代码形式,具备统一的MTL指标源码中文名称为“安卓”或“安致”。最初由Andy Rubin开发,后被Google收购。随着开放手机联盟的成立及Google发布Apache开源许可证授权的源代码,Android逐渐扩展至平板电脑、电视、数码相机、游戏机等领域。
Android系统架构包括Linux内核、设备驱动程序层、原生C/C++库、Android Runtime、应用程序框架层、应用程序层、硬件抽象层等多个层次,以实现设备功能与应用的高效运行。
Linux内核作为Android系统基础,提供核心功能,如线程管理、内存管理等,同时支持主要安全功能及硬件驱动程序。设备驱动程序层主要包含驱动、内存管理、进程管理、网络协议等组件。原生C/C++库为Android系统核心组件和服务提供关键功能。
Android Runtime(ART)在Android 5.0及更高版本中作为运行环境,每个应用运行在独立进程中,使用ART实例,ART通过执行优化的字节码格式(.dex)在低内存设备上运行,包括预先编译(AOT)、即时编译(JIT)和优化的垃圾回收(GC)等功能。应用程序框架层由Java语言编写,为开发者提供API,实现应用功能。应用程序层由运行在Dalvik虚拟机上的应用组成,Dalvik是专为Android设计的Java虚拟机。
Java API框架提供Android OS功能,允许开发者通过Java语言访问系统组件和服务。硬件抽象层(HAL)通过标准界面,向更高层次的Java API框架显示设备硬件功能,为设备硬件组件提供接口。
Android操作系统在Linux内核之上构建,移除了与GNU GPL授权证相关的部分功能,如Cairo、X等,并以Bionic、Skia、opencore等替代。APK(Android Package)是安卓应用的后缀,通过将APK文件直接传到Android模拟器或手机中执行安装。
Android系统采用权限分立机制,每个应用以唯一ID运行,系统部分使用独立识别方式,提供安全功能。权限机制限制应用操作,如读写数据、网络访问、设备状态更改等。应用组件包括活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供者(Content Provider)。
活动作为Android程序的核心,负责界面展示及流程控制。服务作为后台运行组件,提供长周期服务,如播放音乐、后台更新等。广播接收器接收系统广播,执行相应操作。内容提供者支持多个应用间的存储和读取数据,实现数据库功能。
Android系统自年发布以来,每年更新大版本,按照英文字母顺序排列,截至撰稿,已发布至Oreo版本。随着版本迭代,Android系统不断优化功能、增强安全性和提升用户体验。
Wayland发展前景
要体验Wayland的潜力,开发者可以从官方网站获取源码,按照教程进行编译,从而构建出一个基础的"Wayland Compositor"。Wayland协议的灵活性使其可以拥有多种后端实现,比如直接在底层图形驱动(DRM)上运行,或者在X Window系统中嵌套一个Wayland Compositor,就像Xephyr在X上运行X Window一样。 在Ubuntu .的图形环境中,预置的简易Wayland Compositor已经运行良好,它支持透明度、阴影效果以及基本的窗口管理。所有图形绘制都依赖于Cairo-gl,即Cairo的OpenGL后端,如Clutter的Wayland后端成功运行了Clutter Demo,展示了与Ubuntu Tweak 3D Logo相似的效果。 值得注意的是,这个Compositor虽然运行在X Window之上,但它本身并不依赖X进行合成或窗口布局,代码结构简洁高效。未来的Linux图形界面将朝着这种轻量且性能卓越的方向发展。 总的来说,Wayland是一种旨在简化X Window设计、充分利用现代Linux内核图形技术的显示机制。它的目标并非取代X Window,而是提升Linux图形技术的水平。传统的X Window应用,包括经典X应用和旧版的Gtk 1.x/2.x等,将在较长一段时间内继续得到支持,通过Wayland Client的形式与Wayland Compositor协同工作,直至最终进行升级或被替代。扩展资料
Wayland是一个简单的“显示服务器”(Display Server),与X Window属于同一级的事物,而不是仅仅作为X Window下X Server的替代(注:X Window下分X Server和X Client)。也就是说,Wayland不仅仅是要完全取代X Window,而且它将颠覆Linux桌面上X Client/X Server的概念,以后将没有所谓的“X Client”了,而是“Wayland Client”。å¦ä½å¨Windowsä¸ç¼è¯Objective-C
1ãå®è£ GNUstep
GNUstep Windows Installeræä¾äºWindowså¹³å°ä¸çObject-Cç模æå¼åç¯å¢ï¼ä¸å ±æå个软件å ï¼å ¶ä¸GNUstep SystemåGNUstep Coreæ¯å¿ è£ çï¼GNUstep DevelåCairo Backendæ¯éè£ çãåªå®è£ å两个就å¤äºã
2ãç¼åObjective-C代ç
å®è£ å®æåï¼å¨å¼å§èåéçGNUstepé项éæ§è¡shellï¼å°±è½æå¼å½ä»¤è¡ãç´æ¥å¨Windowséè¿å ¥C:/GNUstep/home/Administratorï¼æçæ¯Administratorï¼å¯è½æçä¸ä¸æ ·ï¼ç®å½ï¼å¨è¿éç¨ä½ å欢çå·¥å ·ï¼ç°å¨UltraEditåNotepad++ç¼è¾å¨å¥½åå¯ä»¥ä»£ç é«äº®ï¼ç¼åObject-Cç¨åºã
å¦ï¼HelloWorld.m
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World!");
[pool drain];
return 0;
}
3ãé ç½®ç¯å¢åé
è¿ä¸æ¥å¾éè¦ãGNUstep.shæ¯ç¨æ¥è®¾ç½®GNUstepå¼åç¯å¢åéçï¼å¦æ没ææ§è¡ï¼å°±ä¼æå¾å¤å¤´æ件ï¼åºæ件ï¼å½ä»¤æ¾ä¸å°
å¨ä¸ä¸ªç®å½éå好äºæºä»£ç 以åï¼ç¼åä¸ä¸ªmakeé ç½®æ件ï¼ååå¿ é¡»å«GNUmakefileï¼å 容æ¯
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME=Test
Test_OBJC_FILES=HelloWorld.m
include $(GNUSTEP_MAKEFILES)/tool.make
å¯ä»¥ä¿®æ¹ä¸é¢çé»ä½é¨å
ç¶åå°±æ¯
make
å½ä»¤è¿è¡æåå°±å¯ä»¥çå°æ°å¢äºä¸ä¸ªobjç®å½ï¼éé¢å°±æä½ è¦çå¯æ§è¡æ件å.oæ件ã
OK æå®äºã
2024-12-27 16:21
2024-12-27 15:58
2024-12-27 15:56
2024-12-27 14:55
2024-12-27 14:30
2024-12-27 14:20