我正在尝试构建一个用C语言编写的程序,使用GNU自动工具,但我显然设置错误,因为当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"
| #define PACKAGE_TARNAME "jackoff
| http://github.com/enaeseth/jackoff"
| #define PACKAGE_VERSION "0.1"
| #define PACKAGE_STRING "Jackoff 0.1"
| #define PACKAGE_BUGREPORT "Eric Naeseth <enaeseth@gmail.com>"
| #define PACKAGE "jackoff
| http://github.com/enaeseth/jackoff"
| #define VERSION "0.1"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
出于某种原因,autoconf正在生成一个无效的测试文件:该行应该只是一个分号?构建在Ubuntu 9.04和Mac OS X 10.6上以相同的方式失败,所以这绝对是我的错,而不是环境。
答案 0 :(得分:3)
问题是PACKAGE_TARNAME
(和PACKAGE
)中有换行符,该换行符在configure.ac
文件中设置。您应该查看它包含的内容 - 修复它,并重新生成configure
脚本。
我的一个configure.ac脚本包含(靠近顶部):
AC_CONFIG_HEADER(config.h)
PACKAGE="sqlcmd"
VERSION="86.04"
AC_MSG_RESULT([Configuring $PACKAGE version $VERSION])
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
答案 1 :(得分:2)
看起来问题出现在“jackoff http://github.com/enaeseth/jackoff
”中的换行符中。检查一下。
答案 2 :(得分:0)
PACKAGE_TARNAME
看起来不正常。首先,它有一个嵌入式换行符,这是问题的直接原因。
答案 3 :(得分:0)
AC_INIT
开头的configure.ac
还有一个额外的参数。只需删除它。