gpt4 book ai didi

autotools - 将库与 autotools 链接的正确方法

转载 作者:行者123 更新时间:2023-12-01 12:22:28 24 4
gpt4 key购买 nike

我需要将 libmagic 链接到我使用 autotools 构建的项目。

我目前的解决方案是:configure.ac中的LIBS+="-lmagic"

但我认为实现此目的更合适的方法是在 configure.acLDADD = @MAGIC_LIBS@ 中使用 PKG_CHECK_MODULES 宏在 Makefile.am 中,不幸的是这不起作用。

这是我从 ./configure 得到的内容

configure: error: Package requirements (magic) were not met:

No package 'magic' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

我认为这与pkg-config中没有libmagic有关,有什么想法吗?

最佳答案

I think that a more proper way to achieve this would be using PKG_CHECK_MODULES macro in configure.ac [...]

只有当你真的有一个 libmagic 的 pkg-config 数据文件时,即使这样 there is some controversy around PKG_CHECK_MODULES .据我所知,the implementation you are probably using不提供 pkg-config 文件。当然,您可以自己编写,但这会破坏目的。

如果您要依赖安装在其中一个标准位置的 header 和库——这是常规且非常合理的——那么配置构建的更惯用的方法是让 configure 测试它们的存在。例如,

AC_CHECK_HEADER([magic.h], [], [
AC_MSG_ERROR([required header magic.h not found])
])
AC_SEARCH_LIBS([magic_open], [magic], [], [
AC_MSG_ERROR([required library libmagic not found])
])

请注意,AC_SEARCH_LIBS() 会自动将 -lmagic 添加到 LIBS 中(如果找到的话)。

通过提供 configure 选项,用户可以指定 header 和库的替代位置,您可以变得更有趣,但这似乎不是您要找的东西,而且看起来就像它对 libmagic 来说太过分了。

关于autotools - 将库与 autotools 链接的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42928549/

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