如果我们编译一些使用名为lib.a的静态库的源代码,lib.a中的内联函数是否会与剩余的二进制文件正确内联?gcc静态链接程序能否从静态库中正确内联函数?
0
A
回答
0
不,他们不会。内联是分析树上的一项操作,需要访问内联代码的主机和捐助源的源代码。
静态库在您使用它们时已经从源代码编译为二进制文件,因此内联不会发生。
但是,未内联的代码也是“正确的”,并且功能正常(假设它已被编译到静态库中)。
0
那么,因为为了尝试调用内联函数,它的声明必须在调用站点可见。如果是inline
,那么编译器会将其内联或完全忽略该请求。
如果您想知道在链接到最终产品时,库中内联的非内联函数是否可以内联......这取决于实现,并假设它已经具备了LTO因为它是向图书馆提供的),它可能能够再次将它们内联。尽管......可能会被要求引导实现包括定义,即使它们已经被内联了,但都取决于实现。
http://crazyeddiecpp.blogspot.com/2010/12/inline-functions-and-you.html
相关问题
- 1. gcc静态链接
- 2. UNIX:静态库链接到静态库
- 3. 使用GCC链接静态库的正确方法
- 4. 使用GCC与静态链接库
- 5. GCC链接一个静态库
- 6. 与静态库链接的gcc
- 7. 从动态DLL访问静态链接库中的静态变量/函数
- 8. gcc ld:确定静态库的链接顺序的方法
- 9. 如何将静态库链接到gcc的动态库中
- 10. GCC如何从静态库
- 11. 在gcc中的静态链接(mingw)
- 12. 在gcc中同时使用静态链接库和动态链接库
- 13. 将静态库与C数学库正确链接
- 14. 静态局部变量C99静态内联函数
- 15. 静态库链接失败
- 16. 链接到静态库
- 17. 静态库链接两次
- 18. GCC链接kerberos静态编译CURL
- 19. Docker中的静态链接Haskell程序
- 20. 静态内联函数的标识?
- 21. 静态函数,内联和模板?
- 22. 外部静态函数声明是否打破内部链接?
- 23. C编译器优化(gcc):自动内联非静态函数vs静态函数
- 24. 链接第三方静态库到另一个静态库
- 25. 将静态库链接到另一个静态库
- 26. 链接静态库,共享另一个静态库
- 27. 函数本地静态变量是否阻止函数内联?
- 28. 内联函数调用静态内联函数
- 29. 静态链接到动态库。 glibc
- 30. 链接动态和静态库RCPP
嗨亚历克斯,这也是我的怀疑。你能提供一些你的说法吗?一般来说,我应该在哪里查找这些信息? – Andrew 2010-12-08 16:54:29