我想在Windows上使用开源库。(例如:天鹰座,以下 http://aquila-dsp.org/articles/iteration-over-wave-file-data-revisited/(但是我对"构建系统"一无所知...在Linux上,每个人都会说"解压缩tar,做配置,制作,制作文件",但我想将它们用于Windows。有几个问题。
i( 为什么我必须"安装"源代码?为什么我不能通过将它们复制到工作目录并抛出 #include".\aquila\global.h"来使用这些头文件?
ii( 什么是配置和制造/制造安装?我无法理解他们。我只知道Windows的配置开源需要"CMake",它是配置工具......但它实际上做了什么??
iii( 虽然我已经做了:cmake,mingw32-make,mingw32-make install...我的编译器说"对...的未定义引用"。这意味着什么,我应该如何处理它们?
您不需要安装源代码。您确实需要安装从该源代码构建的库以及您的代码将使用的库。
configure
是为要生成的软件执行生成配置的脚本的标准名称。它的运行方式(以及您将如何看到它被提及(是 ./configure
.
make
是一个构建管理工具(正如SO上的标签会告诉你的那样(。在 linux(等(上构建代码的最常见机制之一是使用 autotools
套件,该套件使用上述configure
脚本生成构建配置信息,供生成的生成文件使用,然后make
生成文件用于构建软件。 make
也是运行makefile中定义的默认构建目标的方法(通常是all
目标,通常构建适当的库/二进制文件/等(。
make install
是对install
目标上 make
工具的特定辅助调用,该工具(通常(将(在本例中为之前(构建的代码安装到适当的位置(在 autotools
/configure
域中,默认位置通常在 /usr/local
下(。
正如SO标签所说,cmake
是一个构建系统,它为其他构建工具(make
,VS
等(生成配置文件。这允许开发人员创建一次构建配置并在多个平台/等上构建(至少在理论上(。
如果运行cmake
正常工作,那么它应该为您告诉它使用的任何目标系统(make
或VS
或其他什么(生成正确的信息。假设这是应该允许mingw32-make
正确构建软件make
(另外假设mingw32-make
不是比make
不同的cmake
目标(。如果它不能正常工作,那么您的系统中仍然缺少某些内容(cmake
可能应该捕获它(。
但是要提供更多细节,您需要提供有关您实际收到哪些错误以及从什么命令中得到的更多详细信息。
(哦,在Windows上,特别是如果您打算使用VS
(或其他一些非mingw32-make
工具(构建软件,则需要运行mingw32-make install
的可能性非常小(。
对于 Windows,请使用 cmake
或最新的ninja
。
这个过程不是简单或直接的,而是可以实现的。您需要编写 CMake 配置。
构建过程并不简单直截了当,这就是为什么存在像Java这样的语言(这是另一回事(
依靠CMake
构建库,您将获得适用于Windows的开源库。
您可以将其作为Windows系统的库分发,分发并与您自己的软件集成,包括开源库,无论哪种情况,您都必须为Windows构建它。
编写CMake
有帮助,为其他平台构建也会有所帮助。
现在问题来了:除了CMake之外,还有其他方法可以用于Windows构建吗?
你喜欢直接写作的味道吗?
如果答案显然是否定的,则必须编写 CMake 并为MSVC
和其他编译器生成 sln。
只需修复一些错误,阅读FAQ
,Documentation
构建开源库。并在潜伏的错误时修复它们。
这就像处理燃烧的铁,但如果你正在做一些有意义的事情,它是值得的。大多数服务器库都是开源的(例如古老的Apache httpd
(。所以,在你正在做什么之前,先想想。
也不多,但这是使用开源库的方式。