繁体   English   中英

Gcc可以构建一个可执行程序吗?

[英]Can Gcc build a executable program?

全部,请原谅我熟悉Android / Linux平台的C程序。 现在我正在尝试使用Sourcery G++ Lite Edition for ARMSourcery G++ Lite Edition for ARM来构建我的示例C程序并将其部署到Android平台的Linux。 以下是我所遵循的说明。 到目前为止它工作正常。 但我有一些我不太了解的东西。 请检讨一下。 谢谢。

源代码是一个hello world程序。

#include <stdio.h>
int main(int argc,char * argv[])
{
  printf("Hello, Android!\n");
  return 0;
}

在开发机器命令控制台中。 运行以下命令行。

arm-none-linux-gnueabi-gcc hello.c -static -o hellostatic
adb push hellostatic /data/test
adb shell
cd /data/test
.hellostatic

Hello, Android!

所以这是我的问题。

gcc可以从ac源代码文件构建可执行文件吗? 似乎它不需要链接工具。 这样对吗? 谢谢。

gcc可以从ac源代码文件构建可执行文件吗?

当然是。

似乎它不需要链接工具?

不,我从gcc手册中提取以下句子,GCC能够预处理并将几个文件编译成几个汇编程序输入文件,或编译成一个汇编程序输入文件; 然后每个汇编程序输入文件生成一个目标文件,并且链接将所有目标文件(新编译的目标文件和指定为输入的目标文件)组合成可执行文件。

默认情况下,gcc将执行complie和link操作,除非您键入特定选项,例如:

gcc -c file.c

这只会将file.c编译为file.o或:

gcc -o file file.c

这将将file.c编译为file.o,并将其链接以最终生成可执行文件。

虽然yanchong已经给出了很好的答案,但我也从这里找到了很好的解读。 我认为这将有助于理解Compile, Link and Build的概念。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM