環境 :
lto (リンク時コンパイル) の仕組みを理解しようとしている
コード:
私はそれらのファイルを持っています:
ジュリア.h:
#ifndef JULIA_H
#define JULIA_H
#include <stdio.h>
int julian();
#endif // JULIA_H
julia.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
そして私のメインプログラム:
main.c
#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 を正しく使用していますか? リンケージを最適化するのに必要なのはそれだけですか?
ありがとう