problème de Autoconf: « Erreur: compilateur C ne peut pas créer executables »
Question
Je suis en train de construire un programme que j'ai écrit en C en utilisant GNU autotools, mais je évidemment, il a mis en place mal parce que quand exécute configure
, il crache sur:
configure: error: C compiler cannot create executables
Si je regarde dans config.log
, je vois:
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;
| }
Pour une raison quelconque, AutoConf générer un fichier de test non valide: ce qui devrait être sur cette ligne qui est à venir comme un simple point-virgule? La construction échoue de la même façon sur Ubuntu 9.04 et Mac OS X 10.6, donc c'est certainement ma faute, pas l'environnement de.
La solution
Le problème est qu'il ya une nouvelle ligne dans le PACKAGE_TARNAME
(et PACKAGE
), qui est défini dans le fichier de configure.ac
. Vous devriez regarder ce qui contient -. Réparer et régénérer le script configure
L'un de mes scripts configure.ac contient (en haut):
AC_CONFIG_HEADER(config.h)
PACKAGE="sqlcmd"
VERSION="86.04"
AC_MSG_RESULT([Configuring $PACKAGE version $VERSION])
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
Autres conseils
Il semble que le problème est dans un caractère de nouvelle ligne dans « jackoff http://github.com/enaeseth/jackoff
». Assurez-vous que.
PACKAGE_TARNAME
ne regarde pas bien. D'une part, il a un saut de ligne incorporé, qui est la cause directe de votre problème.
Vous avez un argument supplémentaire pour AC_INIT
au début de votre configure.ac
. Il suffit de le supprimer.