全部,请原谅我熟悉Android / Linux平台的C程序。现在我尝试使用Sourcery 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可以从c源代码文件构建可执行文件吗?似乎它不需要链接工具。这样对吗?感谢。
答案 0 :(得分:2)
gcc可以从c源代码文件构建可执行文件吗?
是的,当然。
似乎它不需要链接工具?
不,我从gcc手册中提取以下句子, GCC能够预处理和编译几个 将文件分成几个汇编程序输入文件,或分成一个汇编程序输入文件;然后每个 汇编程序输入文件生成一个目标文件,链接组合所有目标文件(那些 新编译的,以及指定为输入的那些)到可执行文件中。
默认情况下,gcc会执行complie和link操作,除非您键入特定选项,例如:
gcc -c file.c
这只是将file.c编译为file.o 或者:
gcc -o file file.c
这将将file.c编译为file.o,并将其链接以最终生成可执行文件。
答案 1 :(得分:0)
虽然yanchong已经给出了很好的答案,但我也从here得到了很好的解读。我认为这将有助于理解Compile, Link and Build
的概念。感谢。