有没有人知道我在哪里可以找到一个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文件。