gpt4 book ai didi

c++ - 如何在 GNU Autotools 项目中包含 Boost?

转载 作者:可可西里 更新时间:2023-11-01 17:10:25 26 4
gpt4 key购买 nike

我的项目使用 GNU 自动工具编译(aclocal && autoconf && ./configure && make)。我想使用 Boost,并且我希望其他人也能够编译它。

  1. 我应该将 Boost 放在我的项目目录中,还是依赖于系统的 Boost?
  2. 我应该如何告诉 autotools 使用 Boost?我用谷歌搜索并发现许多声称可以执行此操作的 m4 文件 - 但我应该将这些 m4 文件放在哪里?我可以将一个存储在我的 /usr/share/aclocal 目录中,但这对其他想要使用 ./configure && make 编译项目的人没有帮助。

最佳答案

The ArchiveAX_BOOST_*

我切换到boost.m4有一段时间了,但速度太慢了,我可以在 boost.m4 完成对第二个库的测试之前在 vim 中手动编辑一个包含完整 Boost 路径的 Makefile。

我回到存档,很高兴得知 boost 宏再次得到积极维护;然后我开始从我的每个项目中清除 boost.m4。

一个用例的相关摘录(假设 ax_boost_*.m4 文件在 subdir m4 中):

./引导

aclocal -I m4 --install
...

./configure.ac

...
AC_CONFIG_MACRO_DIR([m4])
...
AX_BOOST_BASE([1.48],, [AC_MSG_ERROR([libfoo needs Boost, but it was not found in your system])])
AX_BOOST_SYSTEM
AX_BOOST_FILESYSTEM
...

./Makefile.am

ACLOCAL_AMFLAGS = -I m4
EXTRA_DIST = bootstrap ...
SUBDIRS = ... src ...
...

./src/Makefile.am

AM_CPPFLAGS = \
... \
$(BOOST_CPPFLAGS) \
...

...

AM_LDFLAGS = ... \
$(BOOST_LDFLAGS)

...

lib_LTLIBRARIES = libFoo.la

...

libFoo_la_LIBADD = \
... \
$(BOOST_FILESYSTEM_LIB) \
$(BOOST_SYSTEM_LIB) \
...

关于c++ - 如何在 GNU Autotools 项目中包含 Boost?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281079/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com