Tag: autotools

g ++ – 4.6.real:错误:无法识别的选项’-R’

我正在尝试使用此configure命令从源代码编译phpcompiler 。 ./configure –prefix=/opt/phc-0.3.0.1/ –with-php=/opt/php-5.3.17/ 配置错误是, checking for exit in -lboost_regex-mt… no checking for exit in -lboost_regex-mt… (cached) no checking for exit in -lboost_regex… no checking for exit in -lboost_regex… (cached) no checking for exit in -lboost_regex… (cached) no configure: error: Could not link against boost_regex 这完全错了,因为我安装了boost和boost_regex软件包。 libs和头文件。 然后我在config.log文件中挖了这个 configure:17053: g++ -o conftest -g -O2 […]

Autoconf问题:“错误:C编译器无法创建可执行文件”

我正在尝试使用GNU autotools构建一个用C语言编写的程序,但我显然设置错误,因为当configure运行时,它会吐出: configure: error: C compiler cannot create executables 如果我查看config.log ,我看到: configure:2846: checking for C compiler default output file name configure:2868: gcc conftest.c >&5 conftest.c:3:25: warning: missing terminating ” character conftest.c:4: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘:’ token configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME “Jackoff” | […]

标题的宏定义,放置它们的位置?

在定义标头所依赖的宏时,例如_FILE_OFFSET_BITS , FUSE_USE_VERSION , _GNU_SOURCE等等,放置它们的最佳位置在哪里? 我考虑过的一些可能性包括 位于依赖于该文件中包含的标头所公开的定义的任何源文件的顶部 紧接着相关标题的包含之前 通过编译器定义CPPFLAGS级别? (例如-D_FILE_OFFSET_BITS=64 ): 整个源代码回收 整个项目 只是需要它的来源 在项目标题中,还应包括宏应用的那些相关标题 其他一些我没有想过的地方,但是无限优越 注意:适用于制作,自动工具和其他构建系统的合理性是我决定的一个因素。

在(Eclipse CDT)autotools项目中将CFLAG(例如-std = gnu99)添加到何处

我有一个简单的Autotools C项目(不是C ++),它的骨架是由Eclipse CDT(Juno)为我创建的。 CFLAG(通过检查)似乎是-g -O2 。 我希望所有生成的make文件也将-std=gnu99附加到CFLAG,因为我for (int i = 0; i < MAX; i++)和类似的。 我显然可以破解Makefile,但是这会被./configure覆盖。 添加(或更改)代码所需的CFLAG的正确位置在哪里(与用户可能想要更改的CFLAG相对)? PS我想通过编辑文本文件(例如Makefile.am或configure.ac )来做到这一点,而不是单击Eclipse中的框,如果可能的话。

在项目中没有Makefile.am的Makefile.in

在几个项目中,我看过没有Makefile.am的Makefile.in。 例如bash http://git.savannah.gnu.org/cgit/bash.git/tree/和dtach http://dtach.cvs.sourceforge.net/viewvc/dtach/dtach/ 我一直认为Makefile.in是由automake生成的。 另外,Makefile.am是用户编写的文件,我不认为它会从代码库中省略。 在bash源代码树中,Makefile.in太大而无法手写,而dtach中的Makefile.in也会生成。 Makefile.in是如何在这两个项目中生成的?

如何在CMake中检查头文件和库函数,就像在Autotools中一样?

我目前正在将一个小型C项目从autotools转换为CMake 。 在旧的configure.in我使用以下行检查每个头和库函数是否存在: # Checks for header files AC_HEADER_STDC AC_CHECK_HEADERS([stdlib.h time.h math.h sys/stat.h errno.h unistd.h fcntl.h signal.h]) # Checks for library functions AC_FUNC_FORK AC_CHECK_FUNCS([time localtime mktime gmtime exit fork chdir atol signal]) AC_FUNC_STRFTIME 这就是许多autotools项目做AFAIK的事情。 尽管编译器已经检查了必要的头文件并且链接器检查了库函数,但我的代码仍然需要在配置阶段完成这些检查,以正确设置#ifdef HAVE_FOOBAR等的编译标志。 在这种情况下,使用CMake检查标头/function的最佳做法是什么?

何处将CFLAG(例如-std = gnu99)添加到autotools项目中

我有一个简单的Autotools C项目(不是C ++)。 CFLAG(通过检查)似乎是-g -O2 。 我希望所有生成的make文件也将-std=gnu99附加到CFLAG,因为我for (int i = 0; i < MAX; i++)和类似的。 我显然可以破解Makefile,但是这会被./configure覆盖。 添加(或更改)代码所需的CFLAG的正确位置在哪里(与用户可能想要更改的CFLAG相对)? (请注意,这是将一个CFLAG(例如-std = gnu99)添加到(Eclipse CDT)autotools项目中的部分副本,因为我得到了我不想要的特定于Eclipse的答案。) @ DevSolar的回答还没有帮助。 configure.ac文件(如下所示)生成configure脚本(也在下面)。 configure.ac: dnl Process this file with autoconf to produce a configure script. CFLAGS=”$CFLAGS -std=gnu99″ AC_PREREQ(2.59) AC_INIT(tuntest, 1.0) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE() AC_PROG_CC AC_CONFIG_FILES(Makefile src/Makefile) AC_OUTPUT $ grep CFLAGS配置 CFLAGS CFLAGS To assign environment […]