问题标签 [inline-functions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - c ++:头函数没有从库正确链接到exe
我在库(alibrary.lib)中有一个头文件。该库是一个静态库 (.lib),它正确链接到 exe。
现在,我有一个类:Vector3d。
}
Vector3d 在头文件 (Vector3d .h) 中声明和定义。在类声明之后,我使用了交叉函数。
lib compile 是文件,但是当它链接到单元测试 exe 时,我收到此错误:
有任何想法吗?
谢谢
c - 编译器/链接错误:Freedup
我一直在尝试编译一个用于硬链接重复文件的程序,称为 freedup。我确实尝试向程序的作者/维护者发送电子邮件,但已经很长时间了,我还没有收到他的任何回复。
我正在尝试使用最新稳定版本的 gcc (3.4.4-999) 和 make (3.81-2) 从 cygwin 环境编译程序。我尝试删除所有目标文件并运行 make,但我总是收到以下错误:
freedup.o:在函数'main'中:/ home/[user]/freedup-1.5/freedup.c:1791:
对'_hashed'collect2的未定义引用
:ld返回1退出状态make:* * * [freedup]错误1
我确实查看了源代码,发现“散列”函数是一个内联函数(我认为不必在源文件之外声明它......但这只是我从一些初步谷歌搜索中收集到的)。
如果有人愿意尝试在 Windows 环境中编译该程序并且有任何运气,我将不胜感激。谢谢
源文件的直接链接是:http: //freedup.org/freedup-1.5-3-src.tgz
c++ - 链接静态库时内联函数的多重定义
我有一个用 mingw (gcc for Windows) 编译的 C++ 程序。使用包含 gcc 4.4.1 的 mingw 的 TDM 版本。可执行文件链接到两个静态库 (.a) 文件:其中一个是用 C 编写的第三方库;另一个是我编写的 C++ 库,它使用 C 库提供了我自己的 C++ API。
C 库功能的一部分(在我看来是多余的)是在内联函数中实现的。当您使用 C 库的 API 时,您无法避免包含内联函数,但是当我尝试将它们全部链接在一起时,我收到链接错误,说所有内联函数都有多个定义 - 我都有在我的 C++ 包装器库和我没有调用的包装器库中调用,基本上在标头中内联定义的任何内容都已在 C 库和 C++ 库中为它创建了一个函数。
在同一个项目的不同.c或.cpp文件中多次使用include文件时,不会导致多次定义错误;问题只是它为每个库生成一个定义。
编译器如何/为什么在两个库中为这些内联函数生成函数和符号?如何强制它停止在我的代码中生成它们?有没有我可以运行的工具来从 .a 文件中删除重复的函数,或者有一种方法可以让链接器忽略多个定义?
(仅供参考,第三方库确实在其所有标头中包含 #ifdef __cplusplus 和 extern "C" 保护;无论如何,如果这是问题,它不会导致符号的多重定义,它会导致相反的问题,因为符号会未定义或至少不同。)
值得注意的是,如果我链接到第三方 C 库的 DLL,则不会发生链接错误;但是,然后我遇到奇怪的运行时故障,这似乎与我的代码有自己的函数版本有关,它应该从 DLL 调用。(好像编译器正在创建我没有要求的函数的本地版本。)
之前有人问过这个问题的类似版本,但是,我没有在以下任何一个中找到我的情况的答案:
这个问题的答案是海报是多重定义变量,我的问题是内联函数的多重定义: Repeated Multiple Definition Errors from include same header in multiple cpps
这是一个 MSVC 程序,但我使用的是 mingw;另外,这个问题中的发帖者的问题是在标题中的类主体之外定义了一个 C++ 类构造函数,而我的问题是内联的 C 函数: 静态库多重定义问题
这个傻瓜将他所有的 C 代码重命名为 C++ 文件,而他的 C 代码不是 C++ 安全的: 链接时对许多 std:: 函数的多重定义
这个只是想知道为什么违反一个定义规则不是错误: 具有不同定义的内联函数的不可预测的行为
c# - 我如何实现这个委托?
动作似乎不支持参数 string[] 作为参数所以我写了
我有这个功能
现在我想写一个函数,但我似乎无法弄清楚语法。有点像
我怎么写这个?
c++ - 内联函数
我知道编译器可能会也可能不会执行函数的内联扩展,无论程序员是否请求。
我只是想知道,程序员有什么方法可以确定编译器已经内联了一个特定的函数?
c - 具有内部链接的内联函数?
在 C 中:为什么只有具有内部链接的内联函数(即用静态声明)可以引用(即复制地址、读取、写入或调用)具有静态存储持续时间的文件范围内的变量或函数,而其他内联函数可能不能?
c++ - C++ 中的内联函数
如果我们在类定义本身中定义一个成员函数,它是否必须被内联处理,或者它只是对编译器的一个可以忽略的请求。
c++ - c++ 内联函数
我对如何在 C++ 中执行内联函数感到困惑......
让我们说这个功能。如何将其转换为内联函数
c - C中的内联函数和调用成本
我正在制作一个向量/矩阵库。(GCC、ARM NEON、iPhone)
我将结构数据作为指针传递,以避免调用函数时数据复制导致性能下降。所以我一开始设计了这样的功能:
但是,如果函数是内联的,是否有任何理由将值作为指针传递以提高性能?这些变量也被复制了吗?寄存器和缓存怎么样?我试图重新设计这样的功能:
您如何看待每个案例的通话费用?
- 我在第二个签名中添加了“const”以反映建议。
c - C中其他内联函数中的内联函数
将这段代码:
转换成这样的代码?:
海合会、ARM (iPhone)