案例1. gcc -o program main.o file1.o file2.o
案例2. ar crv foo.a file1.o file2.o 那么,gcc -o program main.o foo.a
在编译时,链接到静态库(案例2)通常比链接到单个源文件更快。(案例1)
为什么和什么情况?
感谢任何帮助。
/* Filename :lib.h */
void file2(char *);
void file1(int);
的main.c
#include "lib.h"
int main()
{
file1(3);
file2("Hello World");
return 0;
}
file1.c中
#include <stdio.h>
#include "lib.h"
void file1(int arg) {
printf("you passed %d\n", arg);
}
file2.c中
#include <stdio.h>
#include "lib.h"
void file2(char* arg) {
printf("you passed %s\n", arg);
}
答案 0 :(得分:0)
我能想到的唯一情况是你的目标文件相当大。
链接库只会“拉入”引用的项目。因此,您的可执行文件可以更小,并且内存中的函数更接近于更短的跳转。但在现代平台上,这是不太可能发生的事情。