- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我的应用程序从手动构建迁移到 autoconf,到目前为止运行良好。但是我有一个静态库,我不知道如何集成。该库不会位于通常的库位置 - 二进制文件(.a 文件)和 header (.h 文件)的位置将作为配置参数给出。 (值得注意的是,即使我将 .a 文件移动到/usr/lib 或我能想到的任何其他位置,它仍然无法工作。)它也没有传统命名(它不以“lib”或“l ”)。
手动编译正在使用这些(目录不可预测 - 这只是一个示例):
gcc ... -I/home/john/mystuff /home/john/mystuff/helper.a
AC_CHECK_HEADER([$location/helper.h],
[AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h])
CFLAGS="$CFLAGS -I$location"])
AC_CHECK_HEADER([$location/helper.h],
[AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h])
CFLAGS="$CFLAGS -I$location";
LDFLAGS="$LDFLAGS -L$location";
AC_CHECK_LIB(helper)])
AC_CHECK_HEADER([$location/helper.h],
[AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h])
CFLAGS="$CFLAGS -I$location";
LDFLAGS="$LDFLAGS -L$location/helper.a"])
AC_CHECK_HEADER([$location/helper.h],
[AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h])
CFLAGS="$CFLAGS -I$location";
LDFLAGS="$LDFLAGS $location/helper.a"])
myprog_LDADD=/home/john/mystuff/helper.a
myprog_LDADD=($location)helper.a
AC_CHECK_HEADER([$location/helper.h],
[AC_DEFINE([HAVE_HELPER_H], [1], [found helper.h])
CFLAGS="$CFLAGS -I$location"
myprog_LDADD="$location/helper.a"
AC_SUBST(myprog_LDADD)])
最佳答案
您可以在configure.ac
中设置位置:
LOCATION=/home/john/mystuff
AC_SUBST(LOCATION)
AC_SUBST
定义变量
$LOCATION
在你所有的
Makefile.am
s 并替换所有出现的
@LOCATION@
内容为
$LOCATION
.那么在你的
Makefile.am
你可以做
myprog_CPPFLAGS="-I$LOCATION"
myprog_LDADD="$LOCATION/helper.a"
-l
在系统库目录中查找正确命名的库(例如
libhelper.a
)。但是,由于静态库和目标文件之间没有太大区别,因此无需使用
-l
神奇地引用它。 ;您可以像现在一样将其编译到您的程序中。
关于autotools - Autoconf——包括一个静态库(新手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2751541/
我正在构建我的第一个 autoconf 托管包。 但是,我在任何地方都找不到任何简单的示例来说明如何指定所需的库,并在不同的地方找到该库。 我目前有: AC_CHECK_LIB(['event'],
现在我正尝试在我的 Mac 上构建 Automake,到目前为止一切都进展顺利。我构建了 Autoconf 和 m4,没有任何问题(与 git pulls 相反)。然后我去了 Automake,这就是
我正在尝试在 RedHat Linux 机器上构建 ZooKeeper。 (ZooKeeper 到底是什么可能并不重要:-) 当我按照包装说明进行操作时,我得到: $ autoreconf -if
我对 autoconf 和 automake 的工作原理有非常基本的了解,这是从各种教程中收集的。但是,由于我希望我的库在构建过程中具有灵 active ,因此它们需要具有其他软件中常见的 --wit
为什么 autoconf 脚本中的条件语句在它们的变量前加上“x”?例如,GNU 提供的用于测试 Boost 的宏具有条件,例如 if test "x$want_boost" = "xyes"; th
我已经从 Autoconf Archive 下载了一个宏,我想使用它。我必须在我的 configure.ac 文件中放入什么才能使用这个宏? 最佳答案 您可能希望将 AC_CONFIG_MACRO_D
我正在开发一个将与 GNU autoconf/automake 一起分发的项目,并且我有一组调用 awk 脚本的 bash 脚本。我希望 bash 脚本最终出现在 $PATH 中,而不是 awk 脚本
我正在使用自动配置。现在我有一个生成的中间 .cpp 文件。我想在执行“make clean”时删除 .cpp 文件。 我尝试在 CONFIG_CLEAN_FILES 中指定文件变量,但这仅在我执行
我正在尝试构建 Gecko 代码,我从 Github 克隆了它: git clone https://github.com/mozilla/gecko-dev.git 我收到 autoconf 2.1
我正在运行 autoconf 并配置将 SHELL 设置为“/bin/sh”。这造成了巨大的问题。如何强制 SHELL 为 autoconf 的 '/bin/bash'? 我试图让它在 osx 上运行
文件说 Macro: AS_IF (test1, [run-if-true1], ..., [run-if-false]) Run shell code test1. If test1 exits w
当我运行 ./configure 时,它有时会认为它太旧了,并通过丢失的脚本重新运行 autoconf 以重新生成自身。有时它会导致奇怪的损坏,因为 autoconf 目标机器比最初用于生成配置的
我有一个configure.ac文件,其中包含以下行: AC_DEFINE(CONF_XDISP, ":8", "X screen number") 这些常量在C源代码中用于设置编译默认值。我还有一个
我想在 [] 中重新组合多个语句: AC_ARG_WITH( [float], [AS_HELP_STRING( [--with-float], [us
我正在尝试编写一个configure.ac文件,以便生成的配置脚本搜索包含给定静态库的库目录,例如libsomething.a.我怎样才能做到这一点?目前我让它只检查一个位置: AC_CHECK_FI
我已经了解了 CFLAGS and CPPFLAGS 之间的区别。但我的 Makefile.am 目前同时使用 DEFS 和 CPPFLAGS,我不确定其中的区别。 DEFS += -DLOCALED
我已经了解了 CFLAGS and CPPFLAGS 之间的区别。但我的 Makefile.am 目前同时使用 DEFS 和 CPPFLAGS,我不确定其中的区别。 DEFS += -DLOCALED
在我的 configure.ac 文件中,我有这样的警告和错误: AC_MSG_ERROR([找不到 Boost Math 头文件,您是否正确指定了 --with-boost-include-path
我正在尝试构建一个项目,但它抛出了一个错误: autoreconf: running: /usr/bin/autoconf --force configure.ac:19: error: possib
我有一个 C++ autoconf 管理的项目,我正在适应在 FreeBSD 主机上进行编译。 原来的系统是 Linux,所以我做了一个 AM_CONDITIONAL 来区分我正在构建的主机并将代码分
我是一名优秀的程序员,十分优秀!