gpt4 book ai didi

linux - 为什么链接到静态库通常比链接到单个源文件更快?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:46 26 4
gpt4 key购买 nike

case 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);

主.c

#include "lib.h"
int main()
{
file1(3);
file2("Hello World");
return 0;
}

文件1.c

#include <stdio.h>
#include "lib.h"
void file1(int arg) {
printf("you passed %d\n", arg);

文件2.c

#include <stdio.h>
#include "lib.h"
void file2(char* arg) {
printf("you passed %s\n", arg);
}

最佳答案

我能想到的唯一情况是您的目标文件相当大。

链接到库只会“拉入”引用的项目。所以你的可执行文件可以更小,函数在内存中更近,以实现更短的跳转。但这在现代平台中不太可能发生。

关于linux - 为什么链接到静态库通常比链接到单个源文件更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46875372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com