我正在尝试将LizardTech GeoExpress DSDK链接到自己的应用程序中。 我使用gcc编译,以便我们可以为平台进行编译。 在Linux和Mac上,这很容易:它们提供了一个静态库(libltidsdk.a
)和头文件,我们只需要使用它们即可。
在Windows上编译并不那么容易。 他们是使用Microsoft Visual Studio构建的库,而我们使用MinGW。 我已经阅读了MinGW FAQ,并遇到了下面的问题。 这个库全部都是C ++,所以我的第一个问题是:这真的可能吗?
仅链接所提供的dll会导致所有C ++调用(构造函数、析构函数、方法等)的“未定义引用”错误。
根据MinGW Wiki:http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs我应该能够使用实用程序reimp
将.lib转换为可用的东西。 我已经尝试了LizardTech提供的所有.lib文件,并且它们都会出现“无效或损坏的导入库”的错误。 我尝试过版本0.4和0.3的reimp实用程序。
使用wiki中描述的第二种方法,我在dll上运行了pexport和dlltool以获得.a文档库,但是它产生了相同的“未定义引用”错误。
顺便说一句:我已经阅读了下面的讨论。 它留下了某些不确定性,是否可能,并且鉴于MinGW Wiki页面,似乎应该是可行的。 如果不可能,那就是我需要知道的全部内容。 如果可以做到,我想知道如何实现。
谢谢!