“使用Makefile”的版本间的差异

来自软件实验室
跳转至: 导航搜索
多文件C语言源代码的组织和编译
第42行: 第42行:
  
 
== 多文件C语言源代码的组织和编译 ==
 
== 多文件C语言源代码的组织和编译 ==
 +
通常将相关功能的函数组织在一个文件中形成属于项目的函数库,每个文件gcc -c编译为独立的.o目标文件,最后统一链接生成可执行文件。
 +
 +
lesson1.c:
 +
 +
<nowiki>
 +
#include "stdio.h"
 +
       
 +
void main(){
 +
    int a;
 +
    printf("please input the number:\n");
 +
    scanf("%d",&a);
 +
    printf("square(a)=%d\n",square(a));                                                                                                                                     
 +
}
 +
</nowiki>
 +
 +
lesson2.c:
 +
 +
<nowiki>
 +
#include "stdio.h"
 +
int square(int x) {
 +
    return x*x;                                                                                                                                                             
 +
 +
</nowiki>
 +
 +
执行如下的命令:
 +
<nowiki>
 +
gcc -c lesson1.c
 +
gcc -c lesson2.c
 +
gcc lesson1.o lesson2.o -o lesson12
 +
</nowiki>
  
 
== Makefile ==
 
== Makefile ==
  
 
== autoconf ==
 
== autoconf ==

2015年12月31日 (四) 09:55的版本

函数的概念

函数的四个基本要素:名称、返回值、参数、函数体

库函数

空函数的意义

构建程序的outline,像写文章那样写程序:

#include "stdio.h"
 
 
void insert_card(){
}
void verify_card_number(){}
void verify_password(){}
void authenticate_user(){
    verify_card_number();
    verify_password();
}
 
void input_number(){
}                                                                                                                                                                            
 
void verify_money(){
}
 
void close(){
}
 
void main(){
    insert_card();
    authenticate_user();
    input_number();
    verify_money();
    close();
}


多文件C语言源代码的组织和编译

通常将相关功能的函数组织在一个文件中形成属于项目的函数库,每个文件gcc -c编译为独立的.o目标文件,最后统一链接生成可执行文件。

lesson1.c:

#include "stdio.h"
        
void main(){
    int a;
    printf("please input the number:\n");
    scanf("%d",&a);
    printf("square(a)=%d\n",square(a));                                                                                                                                      
}

lesson2.c:

#include "stdio.h"
int square(int x) {
    return x*x;                                                                                                                                                              
}   

执行如下的命令:

gcc -c lesson1.c
gcc -c lesson2.c
gcc lesson1.o lesson2.o -o lesson12

Makefile

autoconf