导航:首页 > 源码编译 > 源码构建编译

源码构建编译

发布时间:2022-07-18 07:13:43

‘壹’ 如何编译 netty 源码并导入android studio

思路一:下载源码,自己下载依赖lib,构建编译环境,成功;
1. 从maven 地址下载,一般关心下面红色的3个,带sources的肯定就是源码了,但是里面没有相关依赖关系,这个可以看 .pom 文件;
将sources.jar 变为zip 文件,解压出来;
在你项目的 androidstudio project 中新建一个 Java library;命名为 nettylib-4.0.14
将2中源码文件io/netty/ 拷贝到src/main/Java/ 目录下
studio sync,编译看报错的地方,或者根据 1 中地址里面的 pom 文件,找到netty 编译需要依赖的第三方 jar
依赖jar 查询地址: http://www.findjar.com/index.x?
最后nettylib-4.0.14 中的 build.gradle 配置如下:

其中会遇到不少问题,我搞了很久,因为走了些弯路,如上图,我直接贴出来配置了,但是仍然有少数的文件会报错,因为和项目无关,所有直接删掉啦;
编译可能会遇到各种错误,我就不一一贴出来了,大家有问题,请留言;
思路二:在github上下载源码,并且按照其设置来配置编译环境
git 源码地址:https://github.com/netty/netty/tree/netty-4.0.14.Final
编译环境搭建:http://netty.io/wiki/setting-up-development-environment.html
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比较容易报错,因为eclipse 和maven 可能有不兼容的情况;
建议使用前最好,进入netty下载目录,
1。mvn install 在本地Repository中安装jar
2。mvn eclipse:eclipse 生成eclipse项目
然后就多了 .classpath 和 .project,可以直接导入eclipse
我2种都试过啦,eclipse 报错比较难搞定,最后使用的是IDEA;
直接以maven 工程导入就行了,导入后,编译也ok

‘贰’ linux内核源码如何编译

首先uname
-r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname
-r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核
make
menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make
bzImage、make
moles、make
moles
4、安装,make
install
5、.创建系统启动映像,到
/boot
目录下,执行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于
/boot/grub/grub.cfg
文件的设置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改
set
default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make
menuconfig这一步,改好后就万事ok了。
最后再用uname
-r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。

‘叁’ 怎么从源代码编译成exe程序

1. 打开c语言编辑工具(vc6.0),写入所编程序源代码。

2. 点击 组建-编译-执行。

3. 执行完程序,点击回车。

4. 点击 文件另存为 把文件存到你能够找到的文件夹中,比如桌面。

5. 打开你刚保存文件的文件夹,内含有一个 Bebug 的文件夹。注意:如果没有,请再次执行第二步。

6. 打开 Bebug 的文件夹,有一个以.exe为后缀名的文件,就是所需要的可执行文件,将其拷贝出,就可以单独执行,也就是一个小软件生成了。

‘肆’ 源码怎么编译

使用编译器如VC++6.0,VC++2008

‘伍’ 如何编译C语言源代码

下载一个VC2005软件,把代码复制到里面,设置好C运行环境,点击编译,OK,然后点击那个感叹号,直接链接运行,就OK了。

‘陆’ 如何自己编译源代码

我们使用编译器将自己的源代码转换成目标代码, 使用链接器将我们的目标代码链接成一个可执行程序。另外, 我们使用一些程序在计算机中输入源代码文本并且编辑它。这些是最初的和最重要的工具, 它们构成程序员的工具集合或“程序开发环境”。 如果你使用的是命令行窗口, 就像很多专业程序员所做的那样, 你将不得不自己来编写编译和链接命令。如果你使用IDE(“交互式开发环境”或“集成式开发环境”), 就像很多程序员所做的那样, 简单地点击正确按钮就可以完成这个工作。附录C介绍了如何在你的C++实现中编译和链接。 IDE通常包括一个具有有用特性的编辑器, 例如用不同颜色的代码来区分你的源代码中的注释、 关键字和其他部分, 以及其他帮助你来调试代码、 编译和运行代码的功能。调试是发现程序中的错误和排除错误的活动, 你在前进的道路上会听到很多有关它的内容。 我们使用微软的Visual C++作?喑炭 ⒒肪呈道 H绻 颐羌虻サ厮怠氨嘁肫鳌被蚴恰癐DE”的某些部分, 那就是所指Visual C++系统。但是, 你可以使用一些提供最新的、 符合标准的C++实现的系统。我们所说的大多数内容(经过微小的修改)对所有的C++实现都将是正确的, 并且其代码可以在任何地方运行。在工作中, 我们使用几种不同的实现。

‘柒’ .net源码如何编译

你这个应该是CS程序,下载一个Visual Studio 2010 然后在项目里新建一个项目--windows窗体程序。 把你现在这个项目导入进去就可以了。 很简单。 最后按下F5就可以编译了

‘捌’ 自己可以编译安卓源码吗

用最新的Ubuntu 16.04,请首先确保自己已经安装了Git.没安装的同学可以通过以下命令进行安装:

sudo apt-get install git git config –global user.email “[email protected]” git config –global user.name “test”

其中[email protected]为你自己的邮箱.

简要说明

android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述.

源码下载

由于某墙的原因,这里我们采用国内的镜像源进行下载.
目前,可用的镜像源一般是科大和清华的,具体使用差不多,这里我选择清华大学镜像进行说明.(参考:科大源,清华源)

repo工具下载及安装

通过执行以下命令实现repo工具的下载和安装

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

补充说明
这里,我来简单的介绍下repo工具,我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊repo工具之前,我先带你来聊聊多仓库项目:

我们有个非常庞大的项目Pre,该项目由很多个子项目R1,R2,...Rn等组成,为了方便管理和协同开发,我们为每个子项目创立自己的仓库,整个项目的结构如下:


这里写图片描述

执行完该命令后,再使用make命令继续编译.某些情况下,当你执行jack-admin kill-server时可能提示你命令不存在,此时去你去out/host/linux-x86/bin/目录下会发现不存在jack-admin文件.如果我是你,我就会重新repo sync下,然后从头来过.

错误三:使用emulator时,虚拟机停在黑屏界面,点击无任何响应.此时,可能是kerner内核问题,解决方法如下:
执行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通过使用kernel-qemu-armv7内核 解决模拟器等待黑屏问题.而-partition-size 1024 则是解决警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一开始编译的版本是aosp_arm-eng,使用上述命令仍然不能解决等待黑屏问题时,不妨编译aosp_arm64-eng试试.

    结束吧

    到现在为止,你已经了解了整个android编译的流程.除此之外,我也简单的说明android源码的多仓库管理机制.下面,不妨自己动手尝试一下.

    ‘玖’ 简述将源程序编译成可执行程序的过程

    一个源程序到一个可执行程序的过程:预编译、编译、汇编、链接。其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。

    预编译:主要处理源代码文件中的以“#”开头的预编译指令。处理规则如下:

    1、删除所有的#define,展开所有的宏定义。

    2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。

    3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。

    4、删除所有的注释,“//”和“/**/”。

    5、保留所有的#pragma 编译器指令,编译器需要用到他们,如:#pragma once 是为了防止有文件被重复引用。

    6、添加行号和文件标识,便于编译时编译器产生调试用的行号信息,和编译时产生编译错误或警告是能够显示行号。

    (9)源码构建编译扩展阅读:

    编译过程中语法分析器只是完成了对表达式语法层面的分析,语义分析器则对表达式是否有意义进行判断,其分析的语义是静态语义——在编译期能分期的语义,相对应的动态语义是在运行期才能确定的语义。

    其中,静态语义通常包括:声明和类型的匹配,类型的转换,那么语义分析就会对这些方面进行检查,例如将一个int型赋值给int*型时,语义分析程序会发现这个类型不匹配,编译器就会报错。

    ‘拾’ Linux中源码编译安装程序包括哪些基本步骤

    第一步:创建编译脚本
    进入到源码目录 执行 ./configure --prefix=/.../.....(--prefix=后面是想要安装到的目录)
    第二部:编译
    执行 make
    第三部:安装
    执行 make install
    当然上面这几部都是最基本的步骤,如果想优化编译,要在./configure 后面加参数,或者configure之后手动修改Makefile文件 如O2(优化等级) FLAGS 等编译参数的修改。
    --------------------------------------------------------------------------------------------------------------
    以上都是源码包的编译
    如果是自己写的C代码 直接 用gcc编译即可。
    例如 编译test.c
    执行 gcc -o test test.c即可将test.c编译为可执行的文件 test

    自己打出来的 要采纳啊!

    阅读全文

    与源码构建编译相关的资料

    热点内容
    喷油螺杆制冷压缩机 浏览:577
    python员工信息登记表 浏览:375
    高中美术pdf 浏览:158
    java实现排列 浏览:511
    javavector的用法 浏览:979
    osi实现加密的三层 浏览:230
    大众宝来原厂中控如何安装app 浏览:911
    linux内核根文件系统 浏览:240
    3d的命令面板不见了 浏览:521
    武汉理工大学服务器ip地址 浏览:144
    亚马逊云服务器登录 浏览:521
    安卓手机如何进行文件处理 浏览:70
    mysql执行系统命令 浏览:926
    php支持curlhttps 浏览:142
    新预算法责任 浏览:443
    服务器如何处理5万人同时在线 浏览:247
    哈夫曼编码数据压缩 浏览:424
    锁定服务器是什么意思 浏览:383
    场景检测算法 浏览:616
    解压手机软件触屏 浏览:348