为Windows开发人员构建开源库DLL的最佳方法是什么?

时间:2009-06-12 17:01:01

标签: windows visual-studio cygwin gnu porting

我有几个C免费软件/开源库,我在Linux和OSX上使用GNU工具链(automake,conf,flex,bison,gcc,...)开发但我偶尔会收到提供Windows DLL的请求。我希望能够提供这些,而无需花费大量时间和金钱与Windows Visual Studio开发。我有一个可用的Windows XP虚拟机,我也知道该软件是可移植的,偶尔我会得到补丁,以便在Windows上构建它。

我应该使用哪些方法或工具?在Linux上交叉编译?使用Visual Studio Express还是其他什么?我更喜欢从SVN存储库中完全自动化的东西。我不认为cygwin是一个解决方案,因为这似乎不能提供Windows开发人员所需要的东西,因为我了解问题 - 链接和DLL。

4 个答案:

答案 0 :(得分:5)

您可以尝试使用带有MSYS的Mingw,带有SUA的Visual Studio(Express)(用于unix应用程序的子系统)或Cygwin来编译基于automake / autoconf的程序(./configure&& make to build in linux)。

不幸的是,他们创建的lib文件通常与其他编译器不兼容,因此如果您希望您的库使用使用Visual Studio开发的应用程序,那么您应该使用VSC ++方法。通常很多GNU项目(check gnuwin32)实际上也有VC兼容的构建脚本,而不是使用“nmake”编译

答案 1 :(得分:2)

您可以使用MinGW或从Visual Studio Express安装MSVC命令行工具。

其中任何一个都可以由命令行脚本驱动。

我想从Linux进行交叉编译也会起作用,但我不知道可能会有多容易(或痛苦)。

这篇简短的文章展示了Windows应用程序的简单交叉编译。在Wine下运行该应用程序:

答案 2 :(得分:1)

Windows软件开发工具包包括Microsoft的C / C ++编译器(仅命令行,没有可视化工具),因此您甚至不需要Visual C ++ Express Edition。 Windows SDK可以从Microsoft免费下载。

答案 3 :(得分:1)

如果你正在使用http://www.cmake.org/,cmake可以创建Makefile(对于Unix)和项目文件(对于Visual Studio)。这就是KDE项目正在使用的内容。

Visual Studio的编译器可以在cmake生成的文件中使用'devenv / build debug project.csproj'从Windows命令行启动。但是,这需要一个安装了(无可用的)Visual Studio的Windows(可能在VM中)。