Makefile 如何在Windows上安装和使用开源库?

Makefile 如何在Windows上安装和使用开源库?,makefile,open-source,cmake,build-system,Makefile,Open Source,Cmake,Build System,我想在Windows上使用开源库。(例:阿奎拉,如下)但我对“构建系统”一无所知。。。每个人都会在Linux上说“解压tar,进行配置,生成文件”,但我想在Windows上使用它们。这里有几个问题 i) 为什么我必须“安装”源代码?为什么我不能通过将这些头文件复制到工作目录并抛出#include“\aquila\global.h”来使用这些头文件 ii)什么是配置和制造/制造安装?我不能理解他们。我只知道Windows的开源配置需要“CMake”,它是一个配置工具。。。但是它实际上做什么呢 ii

我想在Windows上使用开源库。(例:阿奎拉,如下)但我对“构建系统”一无所知。。。每个人都会在Linux上说“解压tar,进行配置,生成文件”,但我想在Windows上使用它们。这里有几个问题

i) 为什么我必须“安装”源代码?为什么我不能通过将这些头文件复制到工作目录并抛出#include“\aquila\global.h”来使用这些头文件

ii)什么是配置和制造/制造安装?我不能理解他们。我只知道Windows的开源配置需要“CMake”,它是一个配置工具。。。但是它实际上做什么呢


iii)尽管我已经完成了:cmake、mingw32 make、mingw32 make安装。。。我的编译器说“未定义的引用…”。这意味着什么?我应该如何处理它们?

您不需要安装源代码。您确实需要为从该源代码生成的库以及您的代码将要使用的库进行安装

configure
是为即将生成的软件生成配置的脚本的标准名称。它通常的运行方式(以及您将如何看到它)是
/configure

make
是一个构建管理工具(如SO上的标签所示)。在linux(等)上构建代码的最常见机制之一是使用
autotools
套件,该套件使用前面提到的
configure
脚本生成生成配置信息,供生成的makefile使用,
make
然后用于构建软件
make
也是运行makefile中定义的默认构建目标(通常是
all
目标,通常构建适当的库/二进制文件等)的方法

make install
是对
install
目标上的
make
工具的一种特定的、辅助的调用,该工具(通常)将(在本例中是先前的)内置代码安装到适当的位置(在
自动工具
/
配置
中,默认位置通常位于
/usr/local
下)

cmake
是一个构建系统,它可以为其他构建工具生成配置文件(
make
VS
,等等)。这允许开发人员创建一次构建配置,并在多个平台上构建(至少在理论上)

如果运行
cmake
工作正常,那么它应该为您告诉它使用的任何目标系统生成正确的信息(
make
VS
或任何东西)。假设这是
make
,应该允许
mingw32 make
正确构建软件(另外假设
mingw32 make
不是一个明显的
cmake
目标,而不是
make
)。如果它不能正常工作,那么您的系统中仍然缺少一些东西(并且
cmake
可能已经捕捉到了这一点)

但是,要提供更多的细节,您需要提供更多的细节,说明您实际收到的错误以及来自哪个命令


(哦,在Windows上,尤其是如果你计划用
VS
(或其他一些非
mingw32 make
工具)构建你的软件,你需要运行
mingw32 make install
的几率非常小)。

对于Windows使用
cmake
或最新的
ninja

这个过程不是简单或直接的,而是可以实现的。您需要编写CMake配置

构建过程并不简单和直接,这就是为什么存在像Java这样的语言(尽管这是另一回事)

依靠
CMake
构建库,您将获得Windows的开源库

您可以将此作为Windows系统库分发,分发并与您自己的软件集成,包括开源库,在任何情况下,您都必须为Windows构建它

编写
CMake
会有所帮助,为其他平台构建也会有所帮助

现在问题来了:除了CMake for Windows Build,还有其他方法吗

你喜欢直接写汇编的味道吗

如果答案显然是否定的,那么您必须为
MSVC
和其他编译器编写CMake并生成sln

在构建开源库之前,请先阅读
常见问题解答
文档
,然后修复隐藏的错误

这就像处理烧焦的铁一样,但如果你在做一些有意义的事情,那是值得的。大多数服务器库都是开源的(例如,由来已久的
apachehttpd
)。所以,在做什么之前先想一想

也没有很多有用的开源库可以在项目中使用,但这是使用开源库的方法