标签: automake

使用automake设置每个文件标志

有没有办法用automake在每个文件的基础上设置标志?
特别是,如果我有一个c ++项目并想用-WAll编译所有文件,除了我要禁用特定警告的文件,我该怎么办?

我尝试过类似的东西:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

编辑:删除了对automake手册的引用,这实际上是误导(感谢Douglas Leeder).

linux automake gcc

7
推荐指数
2
解决办法
3175
查看次数

如何将autoconf/automake指向非标准包

我正在尝试在RedHat Linux机器上构建ZooKeeper.(究竟ZooKeeper可能并不重要:-)

当我按照包装说明进行操作时,我得到:

 $ autoreconf -if
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
aclocal:configure.ac:33: warning: macro `AM_PATH_CPPUNIT' not found in library
configure.ac:33: error: possibly undefined macro: AM_PATH_CPPUNIT
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1
Run Code Online (Sandbox Code Playgroud)

我无法在标准位置安装CPPPUNIT.(没有root权限,系统团队的策略与标准配置"无偏差".)

我通过AM_PATH_CPPUNI在configure.ac文件中注释掉对T 的引用来解决这个问题 ,但我真正想做的是在我的个人目录中安装CPPPUNIT并指向它,但是我没有做太多在弄清楚如何告诉autoconf/auotmake系统在非标准的地方寻找它的进展.任何人都有任何关于如何做到这一点的提示?

automake autoconf configure apache-zookeeper

7
推荐指数
2
解决办法
6481
查看次数

autotools:强制make不重建configure/Makefile

我有一个autotools项目:automake,autoconf.

我想禁止make从改造的文件configure,Makefile.in等等; 只是为了编译工作.

有些文件是手工编辑的,我知道我不应该这样做.(或者项目已从CVS更新,所有生成的文件都存储在CVS中).但目前我没有安装正确版本的autotools.

必须修改此文件的时间(必须更新/更旧):

aclocal.m4
configure.in
confdb/ax_prefix_config_h.m4
Makefile.am
Makefile.in
Makefile
configure
config.status
Run Code Online (Sandbox Code Playgroud)

或者:touch我必须执行哪些命令才能实现目标?

cvs automake autoconf makefile autotools

7
推荐指数
1
解决办法
2944
查看次数

Autoconf子目录与子包相互依赖?

我手上有一个大项目(主),它被分成几个组件(liba,b,c,d),以便于构建和维护.构建整个包时,必须按顺序构建所有子组件,其中一些组件相互依赖.

更明确地说,liba是b,c和d的先决条件,并且配置脚本会检查liba的存在.在构建b分发时,必须进行此检查以提供用户友好的错误消息.但是,在构建主包及其所有子包时,liba将构建为子目标.因此,当在主套件上运行configure时,尚未安装liba,并且b中的liba检查失败.

我可以通过将--with-liba = internal或类似的标志传递给b的configure脚本来纠正这个问题; 但是,我没有找到关于autoconf这种标志传递的任何文档.暂且,我已经在主长很长的定制生成文件,不只是一样与子目录的autoconf/automake的,但重新排序依赖性的位,而不是(配置利巴)=>使得(配置B)=>(建liba)=>(构建b),顺序是(configure liba)=>(build liba)=>(install liba)=>(configure b)=>(build b).

知道如何用标准的autoconf/automake子目录重构这个吗?

automake autoconf packaging autotools software-packaging

7
推荐指数
1
解决办法
964
查看次数

如何使用GNU的autoconf和automake打包数据文件

我是一个相当新的C++程序员.我使用SDL库做了一个非常简单的游戏.我的游戏自然会使用一些图像,声音和字体.我想要分发包,用户可以配置&& make.这并不是说这个简单的游戏值得分发,但我想了解autoconf和automake的工作原理.我搜索了互联网上的例子,但我找到的教程只显示了一个简单的helloworld程序的安装.他们既没有谈论数据文件的安装,也没有讨论如何检查某些库是否存在,以便我可以在编译时链接它们.而且,我的程序应该知道每个文件的安装位置,以便它可以加载它们.我已经深入研究了automake和autoconf手册,但它们更像是参考资料,而不是新手的资源.任何人都可以简单地解释这个概念,或者引导我到一些我可以阅读它们的地方.

c++ automake autoconf data-files

7
推荐指数
1
解决办法
2128
查看次数

如何交叉编译C++ - 具有依赖关系的库?

我需要交叉编译一些C/C++库.该库依赖于几个C/C++库.其中一些库反过来依赖于其他库.所有库都附带配置脚本.我知道如何在主机系统上编译和安装库 - 在我需要的lib之前安装依赖项.显然,这在交叉编译时不起作用.任何提示都表示赞赏.谢谢.

c c++ automake autoconf autotools

7
推荐指数
1
解决办法
6471
查看次数

无法使用autoconf启用C++ 11

我正在尝试为gcc 4.6启用c ++ 11; 我正在使用autconf,我在configure.ac文件中添加了以下内容

AC_PREREQ(2.61)
AC_INIT(SOLARCORE, 1.0.0, BUG-REPORT-ADDRESS)
AM_INIT_AUTOMAKE([1.10 no-define foreign])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src/threading/node.h])
AC_CONFIG_HEADER([config.h])
AC_OUTPUT([Makefile src/threading/Makefile])

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC
#AC_LANG_PUSH([C++])
AC_LANG([C++])
AC_GNU_SOURCE
AX_CXX_COMPILE_STDCXX_11(,[mandatory])
CXXFLAGS='-Wall -std=gnu++0x'
AC_TYPE_SIZE_T

AC_OUTPUT
Run Code Online (Sandbox Code Playgroud)

我收到了以下错误

./configure:第4949行:意外标记附近的语法错误,mandatory' ./configure: line 4949:AX_CXX_COMPILE_STDCXX_11(,必填)'

我也试过AX_CXX_COMPILE_STDCXX_11([ext],[强制])

我想启用C++ 11以便我可以使用它.我尝试没有AX_CXX_COMPILE_STDCXX_11,并且我的Makefile中只有CXXFLAGS,但它无法正常工作.所以请帮忙.谢谢.

找到答案:最新版本的AX_CXX_COMPILE_STDCXX_11不需要参数.

automake gnu configure c++11

7
推荐指数
1
解决办法
2925
查看次数

为什么我会收到此 aclocal 错误?

我正在尝试libbsd在 Ubuntu 13.04 上从源代码进行编译。我正在使用工具链进行交叉编译,但 automake 在本地计算机上。我已经aclocal-1.13在 PATH 和所有内容中,但仍然收到此错误。我尝试过查找它们,但找不到任何线索。这里发生了什么?

<...>
config.status: executing libtool commands
CDPATH="${ZSH_VERSION+.}:" && cd .. && /bin/bash /home/me/libbsd/build-aux/missing aclocal-1.13 -I m4
error: cannot get project version.
configure.ac:9: error: AC_INIT should be called with package and version arguments
/usr/share/aclocal-1.13/init.m4:23: AM_INIT_AUTOMAKE is expanded from...
configure.ac:9: the top level
autom4te: /usr/bin/m4 failed with exit status: 1
aclocal-1.13: error: echo failed with exit status: 1
make: *** [../aclocal.m4] Error 1
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏。

automake autoconf compilation autotools

7
推荐指数
1
解决办法
8618
查看次数

库定义但没有规范名称

我正在尝试使用autotools构建一个项目并收到此错误:

$ autoreconf --install
automake: warnings are treated as errors
src/Makefile.am:3: warning: variable 'librombrowser_a_LDFLAGS' is defined but no program or
src/Makefile.am:3: library has 'librombrowser_a' as canonical name (possible typo)
autoreconf: automake failed with exit status: 1
Run Code Online (Sandbox Code Playgroud)

src/Makefile.am如下:

noinst_LIBRARIES = librombrowser.a
librombrowser_a_CPPFLAGS = $(GTK_CFLAGS)
librombrowser_a_LDFLAGS = $(GTK_LIBS)
librombrowser_a_SOURCES =                                                      \
                          rombrowser-app.c                                     \
                          rombrowser-app.h                                     \
                          rombrowser-cmds-file.c                               \
                          rombrowser-cmds-help.c                               \
                          rombrowser-cmds.h                                    \
                          rombrowser-dirs.c                                    \
                          rombrowser-dirs.h                                    \
                          rombrowser-settings.c                                \
                          rombrowser-settings.h

bin_PROGRAMS = rombrowser
rombrowser_SOURCES = rombrowser.c
rombrowser_LDADD = librombrowser
Run Code Online (Sandbox Code Playgroud)

我没有看到什么是错的.

automake autotools

7
推荐指数
1
解决办法
3460
查看次数

使用automake将pkg-config文件安装到CentOS上的正确路径

我有几个使用automake构建的项目(让我们称之为lib1和lib2).lib2依赖于lib1作为库,我在CentOS上遇到pkg-config默认值的问题.理想情况下,我希望用户不必设置任何环境变量来正确安装所有内容.

现在,它只是假设$ {PREFIX}/lib/pkgconfig作为我的.pc文件的目的地,但在CentOS 7上,$ {PREFIX}的默认值是/ usr/local,但pkgconfig默认只查看/ usr/share/pkgconfig和/ usr/lib64/pkgconfig.因此,lib2无法找到带有pkg-config的lib1,并且配置脚本会爆炸.

所以,问题是,我的lib1中的"make install"如何正确检测安装pkg-config文件的目录?

automake centos pkg-config

7
推荐指数
1
解决办法
9439
查看次数