【发布时间】:2011-01-29 04:45:20
【问题描述】:
我正在尝试将 LizardTech GeoExpress DSDK 链接到我自己的应用程序中。我使用 gcc 以便我们可以在平台上编译。在 Linux 和 Mac 上,这很容易实现:它们提供了一个静态库 (libltidsdk.a) 和标头,我们所要做的就是使用它们。
为 windows 编译并不是那么容易。他们使用 Microsoft Visual Studio 构建了库,我们使用 MinGW。我已经阅读了 MinGW 常见问题解答,并且遇到了以下问题。该库全是 C++,所以我的第一个问题是:这可能吗?
仅链接提供的 dll 会为所有 C++ 调用(构造函数、析构函数、方法等)产生“未定义引用”错误。
基于 MinGW Wiki:
http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs
我应该能够使用实用程序reimp 将 .lib 转换为可用的东西。我已经尝试了 LizardTech 提供的所有 .lib 文件,它们都给出了“无效或损坏的导入库”。我已经尝试过 reimp 实用程序的 0.4 和 0.3 版本。
使用 wiki 中描述的第二种方法,我在 dll 上运行 pexport 和 dlltool 以获取 .a 存档,但这会产生相同的未定义引用。
顺便说一句:我已经阅读了下面的讨论。关于这是否可能,它留下了一些模棱两可的地方,并且鉴于 MinGW Wiki 页面,这似乎应该是可行的。如果不可能,这就是我需要知道的全部。如果可以做到,我想知道如何才能做到这一点。
How to link to VS2008 generated .libs from g++
谢谢!
【问题讨论】:
-
mingw.org/wiki/DLL 可能对你有用。
标签: c++ gcc g++ mingw visual-c++