如何从源代码构建软件包?

5

我正在使用一台Windows 7电脑工作,并且想要使用libpostal软件包。不幸的是,它似乎不能在Windows上使用,所以我正在尝试通过Cygwin配置它,目前已经非常接近成功了。最后一步是从Google安装snappy。同样,在Windows上无法使用...

我的假设(毫无根据)是我可以只需下载tarball并从源代码构建它,对吗?我尝试过了,我认为它成功了?但是,a) 我不知道如何判断,b) 如果成功了,我不知道如何告诉libpostal中的./configure去查找它。

为了从源代码构建它,我下载了tarball并将其保存在Cygwin读取为我的主文件夹的文件夹中,即C:\cygwin64\home\brittenb\。从那里,我运行了bash autogen.sh,它创建了我所需要的./configure文件。所以我运行它,虽然一些检查的响应是no,但它似乎运行得很好。然后我运行了makemake install。没有什么异常,所以我假设它已经完成了它应该做的事情。我只是不知道从这里怎么做。

这是我运行所有东西后ls的输出:

aclocal.m4              snappy.cc
AUTHORS                 snappy.h
autogen.sh              snappy.lo
autom4te.cache          snappy.o
ChangeLog               snappy.pc
compile                 snappy.pc.in
config.guess            snappy_unittest.cc
config.h                snappy_unittest.exe
config.h.in             snappy_unittest-snappy_unittest.o
config.log              snappy_unittest-snappy-test.o
config.status           snappy-c.cc
config.sub              snappy-c.h
configure               snappy-c.lo
configure.ac            snappy-c.o
COPYING                 snappy-internal.h
depcomp                 snappy-sinksource.cc
format_description.txt  snappy-sinksource.h
framing_format.txt      snappy-sinksource.lo
INSTALL                 snappy-sinksource.o
install-sh              snappy-stubs-internal.cc
libsnappy.la            snappy-stubs-internal.h
libtool                 snappy-stubs-internal.lo
ltmain.sh               snappy-stubs-internal.o
m4                      snappy-stubs-public.h
Makefile                snappy-stubs-public.h.in
Makefile.am             snappy-test.cc
Makefile.in             snappy-test.h
missing                 stamp-h1
NEWS                    testdata
README                  test-driver

ls /usr/local/bin 没有显示任何内容,但是 ls /usr/local/include 显示:

snappy.h  snappy-c.h  snappy-sinksource.h  snappy-stubs-public.h

所以...我的问题是:它有效吗?为什么在libpostal./configure中会显示找不到snappy?谢谢。

你在Windows上构建成功了吗?如果是,请分享一下 :) - Jeremy
很不幸,我没有。我的假设是因为我在电脑上没有管理员权限,但我不能确定这一点。 - tblznbits
让我试试! - Jeremy
2个回答

0

自1.0.0版本起,已删除snappy依赖项。我对源代码、make和config进行了更改,以便在MinGW上构建。

在我的存储库中获取它: https://github.com/BenK10/libpostal_windows

请注意,这不是完整的源代码,因为并非所有内容都需要更改。我建议将我的更改与官方的libpostal分发合并,以确保您拥有所有内容。此外,一些源文件中有一些额外的DLLEXPORT尚未删除,而构建像address_parser.exe这样的可执行文件的Makefile部分已被删除,因为需要进行一些移植才能在Windows上构建这些程序。您可以使用Windows构建中获得的DLL和原始源代码作为参考编写自己的程序。


0

检查来自make install的返回码($?)。如果是零,make install成功。

snappy看起来像一个库,所以可能不会安装到/usr/local/bin。该库可能安装在/usr/local/lib中。


谢谢您的建议,我一到办公室就会检查。假设make install已经正确运行,我该如何确保libpostal可以找到它?我只需将/usr/local/lib中的所有文件复制到另一个位置,然后对usr/local/share等文件执行相同操作吗? - tblznbits
libpostal 自动查找 /usr/local/lib,所以应该可以工作。 - arved
那么,我的假设是我完全不懂。因为 echo $? 返回了 0,所以我认为我做得没错。我将所有文件从本地的 libincludeshare/doc 文件夹复制到 usr/ 相应的文件夹中,然后尝试运行 libpostal 的 ./configure。一切都进行得很顺利,直到最后它说“checking for library containing snappy_compress... no”。根据我在网上找到的信息,除了 libsnappy.a 之外,还应该创建一个名为 libsnappy.dll.a 的文件。这正确吗? - tblznbits
不应该需要将东西复制到 /usr。请检查 config.log,其中记录了详细的错误信息。 - arved

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接