这可能与this question重复,但答案并非解决我的问题......
我想使用c ++标头,库(.lib)和dll为项目提供的第三方软件。因为它将在BeagleBone上运行,所以我正在为Linux编写这个项目。有没有正确的方法来链接Linux应用程序的dll?
答案 0 :(得分:2)
极不可能工作:
Windows对可执行文件使用不同的文件格式(DLL本质上是可执行文件 - 对于Linux中的共享库也是如此)。这意味着重定位信息和符号链接是不同的。
即使您设法加载并重新定位DLL,您也很可能需要许多其他DLL(例如编译器运行时和系统运行时[kernel32.dll])来实际运行该应用程序。当然,这些依赖文件需要有一个正确的接口才能在Linux上运行(参见#3)
没有什么可以阻止Windows DLL直接在共享库中进行系统调用 - 这些在Linux中无效。
您最好的选择是: