可以从静态库中使用GCC内联函数
Can GCC inline functions from static libraries?
我正在制作一个库,它可以从其插入功能中受益匪浅,但是它很大,我决定将其编译到静态库,而不仅仅是预编译的标题。在使用库的代码中,如何从静态库中制作代码(粘贴在调用代码中而不是链接和调用(的代码(这甚至可以(?
-flto
选项启用LTO。基本上,这些通常工作的方式是编译器编译您的源代码时,不仅会直接发射对象代码,而且还将将其代码的内部表示形式写入对象文件中。链接时,编译器基本上会从本内部表示形式中重新运行代码生成,以便整个程序中的代码生成,就好像它写在一个大源文件中一样。这可以大大增加构建程序所需的时间。但是,它允许一些重要的优化,例如在翻译单元边界中甚至在inlip;
之间进行内部进行。
静态库只是对象文件的档案,因此,如果您启用了LTO构建库并将调用代码链接到它,则编译器将能够将功能直接插入调用代码。请注意,归根结底,仍取决于编译器决定是否在线,因此不能保证肯定会构成函数……
相关文章:
- 一位朋友将模板函数缩写为clang和gcc
- 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?
- 带有自动参数的函数使用 GCC 编译,但不使用 Visual C++ 编译
- 无法将右值引用函数与 GCC 匹配
- 当 noexcept 函数尝试在 gcc 或 clang 中调用非 noexcept 函数时启用警告
- 在使用 GCC 4.8.5 构建的应用中对 cxx11 函数的未定义引用
- "朋友"成员函数和 GCC 与 Clang
- 使用具有默认参数的函数模板进行 decltype 会使结果混乱(一个有趣的问题或 gcc 的错误)
- 编译包含指向模板函数的指针的初始值设定项列表时,gcc 出错,但 clang 不出错
- GCC 7 中模板类的模板成员函数的专用化
- constexpr 函数的常量引用参数:gcc/msvc vs clang/icc
- GCC 能否优化具有相同主体的函数的代码大小?
- 在 gcc/clang (C++) 中获取函数范围之外的标签地址
- 如何将英特尔的数学函数库与 gcc 一起使用?
- 为什么这个自定义分配器的析构函数在 GCC/MSVS 的 stdlib 中被调用两次
- GCC 仪器 - 是否可以自动输出函数的参数?
- GCC:函数包装器模板问题
- gcc函数属性-如何使用它们
- GCC 函数多版本控制和命名空间
- MSVC与GCC:函数中的变量声明