Linux下编译C程序

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  GCC 支持了许多不同的语言,包括 C、C++、Ada、Fortran、Objective C,Perl、Python 和 Ruby,甚至还有Java。

  Linux 内核和许多其他自由软件以及开放源码应用程序都是用 C 语言编写并使用 GCC 编译的。

  编译C++程序:

  -c 只编译不连接

  g++ file1 -c -o file1.o

  g++ file2 -c -o file2.o

  g++ file1.o file.o -o exec

  g++ -c a.cpp 编译

  g++ -o a a.o 生成可执行文件

  也可以 g++ -o a a.cpp直接生成可执行文件。

  1. 编译单个源文件

  为了进行测试,你可以创建“Hello World”程序:

  #include <stdio.h>

  #include <stdlib.h>

  int main(int argc, char **argv)

  {

  printf(“Hello world!\n”);

  exit(0);

  }

  使用如下命令编译并测试这个代码:

  # gcc -o hello hello.c

  # ./hello

  Hello wordl!

  在默认情况下产生的可执行程序名为a.out,但你通常可以通过 gcc 的“-o”选项来指定自己的可执行程序名称。

  2. 编译多个源文件

  源文件message.c包含一个简单的消息打印函数:

  #include <stdio.h>

  void goodbye_world(void)

  {

  printf(“Goodbye, world!\n”);

  }

  使用gcc的“-c”标记来编译支持库代码:

  # gcc -c message.c

  这一过程的输出结果是一个名为message.o的文件,它包含适合连接到一个较大程序的已编译目标代码。

  创建一个简单的示例程序,它包含一个调用goodbye_world的main函数

  #include <stdlib.h>

  void goodbye_world(void):

  int main(int argc, char **argv)

  {

  goodbye_world();

  exit(0);

  }

  使用GCC编译这个程序:

  # gcc -c main.c

  现在有了两个目标文件: message.o 和 main.o 。它们包含能够被 Linux 执行的目标代码。要从这个目标代码创建Linux可执行程序,需要再一次调用 GCC 来执行连接阶段的工作:

  # gcc -o goodbye message.o main.o

  运行编译结果:

  # ./goodbye

  Goodbye, world!

  前面这些单独的步骤也可以简化为一个命令,这是因为 GCC 对如何将多个源文件编译为一个可执行程序有内置的规则。

  # gcc -o goodbye message.c main.c

  # ./goodbye

  Goodbye, world!

  3. 使用外部函数库

  GCC 常常与包含标准例程的外部软件库结合使用,几乎每一个 Linux 应用程序都依赖于由 GNU C 函数库 GLIBC。

  应用外部函数库的例子:

  #include <stdio.h>

  #include <stdlib.h>

  #include <math.h>

  #define MAX_INPUT 25

  int main(int agrc, char **argv)

  {

  char input[MAX_INPUT];

  double angle;

  printf(“Give me an angle (in radians) ==>”);

  if(!fgets(input, MAX_INPUT, stdin)){

  perror(“an error occurred.\n”);

  }

  angle = strtod(input, NULL);

  printf(“sin(%e) = %e\n”, angle, sin(angle));

  return 0;

  }

[1][2]

当一个人把寂寞当作人生预约的美丽,

Linux下编译C程序

相关文章:

你感兴趣的文章:

标签云: