语境 :
试图了解 lto(链接时间编译)是如何工作的
代码:
我有这些文件:
朱莉娅.h:
#ifndef JULIA_H
#define JULIA_H
#include <stdio.h>
int julian();
#endif // JULIA_H
朱莉娅.c:
#include "julia.h"
int julian()
{
printf("Hello Worldu!\n");
return 0;
}
像这样编译为共享库: gcc -O3 -fPIC -shared julia.c -o libjulia.so -L$PWD -I$PWD -flto
和我的主程序:
主程序
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "julia.h"
int main()
{
julian();
return 0;
}
编译:gcc -O3 main.c -I/path/to/inc -L/path/to/lib -Wl,-rpath=/path/to/lib -ljulia -flto
它编译罚款。
问题 :
所以,这是一个 hello world 程序,但我用 LTO 做得对吗?是否只需要优化链接?
谢谢