Pregunta

Estoy tratando de construir un programa que he escrito en C usando GNU autotools, pero, evidentemente, pero también ajustarlo equivocada porque cuando se ejecuta configure, que escupe:

configure: error: C compiler cannot create executables

Si miro en config.log, veo:

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;
| }

Por alguna razón, autoconf es la generación de un archivo de prueba no válida: lo que debería ser en esa línea que viene como sólo un punto y coma? La generación falla de la misma manera en Ubuntu 9.04 y Mac OS X 10.6, por lo que este es definitivamente mi culpa, no la del medio ambiente.

¿Fue útil?

Solución

El problema es que hay una nueva línea en la PACKAGE_TARNAME (y PACKAGE), que se establece en el archivo configure.ac. Usted debe mirar lo que contiene -. Solucionarlo, y regenerar el guión configure

Una de mis guiones configure.ac contiene (en la parte superior):

AC_CONFIG_HEADER(config.h)

PACKAGE="sqlcmd"
VERSION="86.04"

AC_MSG_RESULT([Configuring $PACKAGE version $VERSION])

AC_SUBST(PACKAGE)
AC_SUBST(VERSION)

Otros consejos

Parece que el problema es en un carácter de nueva línea en "jackoff http://github.com/enaeseth/jackoff". Compruebe que.

PACKAGE_TARNAME no se ve del todo bien. Por un lado, cuenta con una nueva línea incorporada, que es la causa directa de su problema.

Usted tiene un argumento adicional para AC_INIT al comienzo de su configure.ac. Basta con retirar la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top