我的项目使用 GNU 自动工具编译(aclocal && autoconf && ./configure && make
)。我想使用 Boost,并且我希望其他人也能够编译它。
- 我应该将 Boost 放在我的项目目录中,还是依赖于系统的 Boost?
- 我应该如何告诉 autotools 使用 Boost?我用谷歌搜索并发现许多声称可以执行此操作的 m4 文件 - 但我应该将这些 m4 文件放在哪里?我可以将一个存储在我的
/usr/share/aclocal
目录中,但这对其他想要使用./configure && make
编译项目的人没有帮助。
最佳答案
The Archive有 AX_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/