bra*_*ady 5 windows linker static-libraries
我想在 Windows 中创建一个静态库 (.lib),可以在后续构建中用作未定义函数的“备份”。
例如,假设我有 foobar.lib,它具有以下定义:
FOO
BAR
Run Code Online (Sandbox Code Playgroud)
我还有一些其他程序,FOO它只定义并且将被构建到一个必须导出的 DLLFOO和BAR. 我希望能够使用 foobar.lib 自动导出BAR生成的 DLL 中的默认定义(并忽略FOOfoobar.lib 中的定义)。
我曾尝试将 foobar.lib 发送到链接器,但出现多个定义的符号错误(/FORCE 应该覆盖它,但强烈警告它可能无法按预期工作)。我也试过使用 /NODEFAULTLIB:foobar.lib 但它完全忽略了库并说BAR是未定义的。
我几乎 100% 肯定有一种方法可以做到这一点,因为我使用一个执行此操作的应用程序 (Abaqus) 来允许用户编写插件,而不必为插件 DLL 定义所有必需的导出。他们不使用 /FORCE 选项。
我找到了一个解决方案(不确定它是否是唯一或最好的解决方案)。
我试图使用一个目标文件(foobar.obj)在 foobar.lib 中定义FOO和。BAR如果我将其拆分为 foo.obj 和 bar.obj,然后使用它们创建 foobar.lib,链接器可以有效地忽略相应的 .obj 文件。
所以简短的答案是:静态库的每个目标文件一个函数。
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |