linux终端下如何进行C语言编译

linux终端下如何进行C语言编译,第1张

1、首先在linux下判断氏蚂是否安装gcc编译器,直接执行:gcc -v,判断是否安装gcc。

2、然后需要在代码框内写歼档埋一个简单的C源程序。

3、在程序中使用了C语言中的数学开方函数,sqrt(),所以需要引入math.h头文件

4、写完源程序之后,我们对其进行编译,如果使用通常的编译语句,【gcc math.c -o math】进行编译,会出现错误;大概的意思就是不认识sqrt这个东西。

5、所以需要使用正确的命令:【gcc math.c -lm -o math】;这样才蠢稿能编译正确。

在keilc中,单片机的C语行岁言程序可以再DEBUG模式中得到对应的汇编程序。步骤如下:

1、建立工程档核睁氏运,导入C文件代码,编译生成hex文件。

2、按CTRL+F5或者点击菜单Debug--Start/Stop Debug Session

3、点击View--Disassembly Window调出汇编窗口,如上图。

通过以上步骤就可以看到与C对应的汇编程序了。

2、反编译过程

1)反编译出资源文件

使用apktool工具,进入apktool所在的目录下,使用如下的命令:

./apktool d ./xxx.apk(apk所在的路径)

d表示decode,在当前目录下就会生成一个名为xxx的目录,里面就是反编译出来的各种资源文件,其中res表示资源文件,smali表示源代码,不过是字节码,不能直接查看。

以本人的实验为例子,如下图所示:

此时会在当前目录下生成察尘则一个目录app-debug。

2)源代码的反编译

a)因为apk文件其实是使用zip进行打包压缩生成的文件,所以先把xxx.apk文件改兄源名为xxx.zip文件,并对其进行解压。

b)进入解压后的目录,其中有一个classes.dex文件,这个文件就是java文件编译再通过dx工具打包而成的,源代码就包含在这个文件中。

c)把前一步生成的文件classes.dex复制到dex2jar工具的根目录中,并使用如下命令对其进行反编译:

./dex2jar.sh d classes.dex

就会在当前目录下生成一个classes_dex2jar.jar文件

d)点击打开jdgui工具,这是一个图形化败棚的工具,然后打开上上述的classes_dex2jar.jar文件就可以看到apk对应的源代码。

对于本人的实验如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存