如何在Firebreath插件中链接多个库



有没有人知道我在哪里可以找到一个Firebreath样本(Mac OS X或Windows),说明如何创建一个包含1个或多个其他库的插件(。dll或. so)每个都依赖于作为静态库(lib)构建的其他子项目?

例如,假设Firebreath插件名为PluginA, PluginA从DLL_B和DLL_C调用方法。DLL_B和DLL_C是c++项目。DLL_B从另一个名为LIB_D的项目调用方法,DLL_C从名为DLL_E的项目调用方法。

因此,最终包应该包含以下文件:

PluginA.dll
DLL_B.dll (which also incorporates LIB_D)
DLL_C.dll
DLL_E.dll

我目前被迫转储pluginA解决方案中的所有源文件,但这只是一个瓶颈(例如,我不能调用用其他语言编写的库,例如Mac OS X上的Objective-C)。

我试着在Firebreath上跟踪样本,但不能让它们工作,我没有发现其他用户声称他们能够让它工作的样本。我尝试使用CMAKE,也直接从X-Code运行解决方案,但最终结果是相同的(收到链接错误,部署后DLL_C找不到DLL_E等)

任何帮助都将不胜感激-谢谢,

Mihnea

你想得太多了。

在windows:

  • dll 依赖于静态库,因为如果它们依赖于静态库,在构建时就会被编译进来。
  • 依赖另一个DLL的DLL通常只需要另一个DLL出现在相同的位置或在DLL搜索路径中。
  • 考虑到这两件事,您需要做的就是找到.lib文件,它要么是静态库,要么与.dll一起,并为每个文件添加一个target_link_library调用。firebreath.org上有一个页面解释了如何做到这一点。

在linux上是相同的,但是使用正常的规则来查找。so文件。

相关内容

  • 没有找到相关文章

最新更新