【lucene web项目源码】【miui系统内核源码】【骏飞龙虎源码】Platform 源码 编译

时间:2024-12-22 20:14:20 来源:exe无源码怎么修改 分类:知识

1.UE4学习笔记(1):UE源码编译+安卓打包
2.十大程序编译器?
3.cmake ..是源码什么意思
4.简述android源代码的编译过程
5.Facebook Open Platform编译FAQ

Platform 源码 编译

UE4学习笔记(1):UE源码编译+安卓打包

       注:该笔记以UE4..2在windows平台为例,vs版本为

       1.关联github和Epic账户

       要在github上获取UE4源码需要先关联账户,编译否则找不到源码,源码网页

       按照官网提供流程即可完成 GitHub上的编译虚幻引擎 - Unreal Engine

       记得确认邮件,否则还是源码(当初就是忘记了,卡了好一会儿)

       2.下载UE4源码

       在 Releases · EpicGames/UnrealEngine (github.com)中选择自己需要的编译lucene web项目源码版本(我使用的是4..2),这步很简单,源码但需要注意的编译是还需要将Commit.gitdeps.xml文件也一并下载,用于替换同名文件(有些版本则没有这样的源码文件),不替换的编译话后续会报错(之后步骤中会提到)

       解压后目录如下:

       3.执行bat文件

       (1)点击运行setup.bat,没有替换Commit.gitdeps.xml文件可能会出现如下问题:

       (2)点击运行GenerateProjectFiles.bat,源码此过程可能会出现如下问题:

       未找到框架 .NETFramework Version=v4.6.2

       只需要在VS Installer中选中安装就行:

       完成后会生成UE4.sln文件

       4.生成

       VS打开UE4.sln,编译开始生成:

       但是源码生成过程中我出现了这样的问题:

       UE4 fatal error C: 编译器限制: 达到内部堆限制

       error C: 超过了 PCH 的虚拟内存范围问题解决

       我出现这样问题的原因是我的C盘空间不够大(分区的时候给的比较少),托管系统设置在C盘,编译miui系统内核源码导致无法分配足够的源码虚拟内存,设置为空间足够的盘即可。

       步骤:电脑->属性->高级系统设置->高级->性能设置->高级->更改

       OK,成功编译完成

       5.安卓打包

       该过程有官方文档,并且比较繁琐,直接给出链接:

       设置虚幻的Android SDK和NDK | 虚幻引擎文档 (unrealengine.com)

       UE部署到Android以及杂症的解决 - 知乎 (zhihu.com)

       我就提一下自己遇到的问题,在UE4中进行安卓打包的时候遇到了这样的问题:

       原因在于SetupAndroid.bat中,SDK Platform的版本选择是,而在UE项目设置->平台 - Android SDK中的SDK API Levle默认选择latest。但是我安装AS的时候默认给我安装了最新的Android API (此时latest指向的是版本),导致冲突。解决方法是UE项目设置中手动设置指定版本,或者在AS中卸载高于版本的骏飞龙虎源码Android API。

       OK,打包成功!!!

       6.打开游戏

       但是,是的,还有但是(都最后一步了,还有问题OVO!!!),在手机上下载安装,打开后是activemq-all源码这样的:

       原来是因为打包除了生成apk文件还生成了obb,至于Google Play Store Key应该就是一个密钥了。

       解决方法是在UE项目设置->Android中勾选“将游戏数据打包至.apk中”,我们可以看到对这个勾选项的解释:

       行,勾选后重新打包,成功运行:

十大程序编译器?

       C++的编译器都有哪些?

       kDevelop、Anjuta、CodeBlocks、VisualMingw、Ideone、EclipseCDT、Compilr、CodeLite、NetbeansC++、Dev?C++。

       Kdevelop是一个专为C/C++及其他语言的开源扩展插件IDE,它基于KDevPlatform平台,这是一款可用于IDE基础开源库。

       AnjutaDevstudio是另外一款强大的开发工具,拥有先进的编程特性包括项目管理、应用程序向导、交互式调试器、源码编辑器、版本控制,GUI设计、分析器等等,这款工具为C/C++开发者提供强大的用户界面接口。

       CodeBlocks是一款比较流行的免费且开源的集成开发环境,该工具拥有所有功能,能够满足开发者所需,比如高效的用户界面、编译及调试功能等。

       Visual-MigGW是一款极为简单的开源IDE,它所有的WindowsAPI都可来进行简单快速的开发,它还支持一个随时可用的应用框架,项目托管在SourceForge.net。

       Ideone是一款在线编辑器和调试工具,这款工具提供了强大的功能,帮助程序员以更加快速有效的方式编译源代码。

       EclipseCDT提供更加高效的功能,如:支持为各种工具链提供项目创建及管理、标准构建、源码导航、各种知识工具源,代码编辑器功能如高亮显示、折叠、超链接导航、源代码重构以及代码生成,可视化调试工具,包括内存、寄存器及反汇编视图。

       Compiler是一款在线集成开发工具,允许你编写令人印象深刻的代码功能和简单的用户界面,该工具支持的语言如C、C++、Java、HTML。

       Codelite是一款极好的免费开源的IDE,几乎可运行于所有平台。

       Netbeans工具包含多种类型模板,它拥有迷人的功能,使其在Web开发者更加流行,比如:代码协助、编译配置、单元测试、源码检测、远程开发及文件导航等功能。

       DevC++的功能包括:类浏览器、集成调试、支持GCC、项目管理、代码编译、编辑且编译资源文件、工具管理、功能清单。

windows的pc端编译器有哪些

       Windows的pc端编译器有:

       1)VisualStudio

       Windows下首先推荐大家使用微软开发的VisualStudio(简称VS),它是Windows下的标准IDE,实际开发中大家也都在使用。为了适应最新的Windows操作系统,微软每隔一段时间(一般是一两年)就会对VS进行升级。VS的不同版本以发布年份命名,例如VS是微软于年发布的,VS是微软于年发布的。

       ä¸è¿‡VS有点庞大,安装包有2~3G,下载不方便,而且会安装很多暂时用不到的工具,安装时间在半个小时左右。

       å¯¹äºŽåˆå­¦è€…,我推荐使用VS。最好不用使用VS,有点坑初学者。

       2)Dev?C++

       å¦‚果你讨厌VS的复杂性,那么可以使用DevC++。DevC++是一款免费开源的C/C++IDE,内嵌?GCC?编译器(LinuxGCC编译器的Windows移植版),是NOI、NOIP?等比赛的指定工具。DevC++的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。

       NOI是NationalOlympiadinInformatics的缩写,译为“全国青少年信息学奥林匹克竞赛”;NOIP是NationalOlympiadininformaticsinProvinces的缩写,译为“全国青少年信息学奥林匹克联赛”。NOI、NOIP都是奥林匹克竞赛的一种,参加者多为高中生,获奖者将被保送到名牌大学或者得到高考加分资格。

       3)VisualC++6.0

       VisualC++6.0(简称VC6.0)是微软开发的一款经典的IDE,很多高校都以VC6.0为教学工具来讲解C和C++。但VC6.0是年的产品,很古老了,在Win7、Win8、Win下会有各种各样的兼容性问题,甚至根本不能运行,所以不推荐使用。

       VC6.0早就该扔进垃圾桶了,可是依然有很多大学把它作为教学工具,并且选用的教材也以VC6.0为基础来讲解C语言和C++,可见教学体制的极端落后,课程体系的更新远远跟不上技术的进步。

       4)其它IDE

       é™¤äº†ä¸Šé¢æåˆ°çš„三款IDE,Windows平台下还有很多其他的IDE,它们各有特点,例如:

       Code::Blocks是一款开源、跨平台、免费的C/C++IDE,它和DevC++非常类似,小巧灵活,易于安装和卸载,不过它的界面要比DevC++复杂一些,不如DevC++来得清爽。

       TurboC是一款古老的、DOS年代的C语言开发工具,程序员只能使用键盘来操作TurboC,不能使用鼠标,所以非常不方便。但是TurboC集成了一套图形库,可以在控制台程序中画图,看起来非常炫酷,所以至今仍然有人在使用。

       C-Free是一款国产的Windows下的C/C++IDE,最新版本是5.0,整个软件才M,非常轻巧,安装也简单,界面也比DevC++漂亮。C-Free的缺点也是调试功能弱。可惜的是,C-Free已经多年不更新了,组件都老了,只能在XP、Win7下运行,在Win8、Win下可能会存在兼容性问题。

常见的C语言编译器是什么?

       ç›®å‰æœ€æµè¡Œçš„C语言编译器有以下几种:

       1、GNUCompilerCollection或称?GCC

       GCC(GNUCompilerCollection,GNU编译器套件),是由GNU开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。

       GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOSX等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。

       2、MicrosoftC或称MSC

       MicrosoftC是c语言的一种IDE(集成开发环境),常见的还有MicrosoftVisualC++,BorlandC++,WatcomC++,BorlandC++,BorlandC++Builder,BorlandC++3.1forDOS,WatcomC++.0forDOS,GNUDJGPPC++,LccwinCCompiler3.1,HighC,TurboC等等......

       3、BorlandTurboC或称TurboC

       TurboC是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套Turbo系列软件,如TurboBASIC,TurboPascal,TurboProlog,这些软件很受用户欢迎。

       æ‰©å±•èµ„料:

       C编译的整个过程很复杂,大致可以分为以下四个阶段:

       1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。

       2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。

       3、汇编阶段将汇编语言翻译成机器指令。

       4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被操作系统装入执行的统一整体。

       å‚考资料来源:百度百科-gcc(GNU编译器套件)

       å‚考资料来源:百度百科-MicrosoftC

       å‚考资料来源:百度百科-TurboC

cmake ..是什么意思

       CMake(Cross-Platform Make)是一个跨平台的编译工具,它可以用简单的语句来描述所有平台可供使用的安装、编译、连接和打包过程。CMake不依赖于特定的编译器,生成的是可移植的Makefile,可以在不同平台上编译源代码。

       CMake中的..代表什么?

       在CMake中,..表示上一级目录,街机连环夺宝源码可以在项目目录中使用,可以用来指定项目的搜索路径。使用cmake ..命令时,CMake会寻找与当前目录同级的CMakeLists.txt文件,然后读取并处理这个文件。

       CMake ..的作用是什么?

       使用cmake ..命令,可以让CMake从项目目录的上一级目录中读取CMakeLists.txt文件,对项目进行配置和生成Makefile。这样的操作可以将编译所生成的文件和源代码分开,方便进行单独的构建和管理。在实际使用中,..命令通常和其他命令一起使用,常用的命令包括cd、mkdir 和 ls等。

简述android源代码的编译过程

       编译Android源代码是一个相对复杂的过程,涉及多个步骤和工具。下面我将首先简要概括编译过程,然后详细解释每个步骤。

       简要

       Android源代码的编译过程主要包括获取源代码、设置编译环境、选择编译目标、开始编译以及处理编译结果等步骤。

       1. 获取源代码:编译Android源代码的第一步是从官方渠道获取源代码。通常,这可以通过使用Git工具从Android Open Source Project(AOSP)的官方仓库克隆代码来完成。命令示例:`git clone /platform/manifest`。

       2. 设置编译环境:在编译之前,需要配置合适的编译环境。这通常涉及安装特定的操作系统(如Ubuntu的某些版本),安装必要的依赖项(如Java开发工具包和Android Debug Bridge),以及配置特定的环境变量等。

       3. 选择编译目标:Android支持多种设备和配置,因此编译时需要指定目标。这可以通过选择特定的设备配置文件(如针对Pixel手机的`aosp_arm-eng`)或使用通用配置来完成。选择目标后,编译系统将知道需要构建哪些组件和变种。

       4. 开始编译:设置好环境并选择了编译目标后,就可以开始编译过程了。在源代码的根目录下,可以使用命令`make -jN`来启动编译,其中`N`通常设置为系统核心数的1~2倍,以并行处理编译任务,加快编译速度。编译过程中,系统将根据Makefile文件和其他构建脚本,自动下载所需的预构建二进制文件,并编译源代码。

       5. 处理编译结果:编译完成后,将在输出目录(通常是`out/`目录)中生成编译结果。这包括可用于模拟器的系统镜像、可用于实际设备的OTA包或完整的系统镜像等。根据需要,可以进一步处理这些输出文件,如打包、签名等。

       在整个编译过程中,还可能遇到各种依赖问题和编译错误,需要根据错误信息进行调试和解决。由于Android源代码庞大且复杂,完整的编译可能需要数小时甚至更长时间,因此耐心和合适的硬件配置也是成功编译的重要因素。

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编译,不想进行前面的编译,可以根据脚本屏蔽前面的编译。