【发布时间】:2020-08-24 08:27:36
【问题描述】:
我正在尝试研究内联和链接时优化的效果,目前我正在尝试链接两个文件,其中一个文件具有显式内联函数调用
以下是文件:
test.c
void show(int *arr,int n ){
for(int i=0;i<n;i++)
printf("%d",arr[i]);
}
int main(){
int arr[10]={0};
foo(arr);
}
test1.c
inline void foo(int *arr){
show(arr,10);
}
所以我试图将它们编译为
gcc -c -O2 -flto test.c
gcc -c -O2 -flto test1.c
gcc -o myprog -flto -O2 test1.o test.o
但这仍然会产生链接器错误,就像在 main 中未定义对 foo 的引用一样
我编译正确了吗? gcc 是否无法内联?
任何帮助将不胜感激
【问题讨论】:
标签: gcc clang compiler-optimization llvm-gcc lto