Un du fichier d'en-tête par exemple BamReader.h du paquet bamtools est l'installation àAC_CHECK_HEADER échoue si l'en-tête chemin d'installation a api dans ce
/usr/local/include/bamtools/api
J'ai essayé de régler le comprennent drapeau soit:
CXXFLAGS="$CXXFLAGS -I/usr/local/include/bamtools"
or
CXXFLAGS="$CXXFLAGS -I/usr/local/include/bamtools/api"
AC_CHECK_HEADERS([BamReader.h], [bamtools_found=yes], [AC_MSG_ERROR([Unable to find bambools header])])
Si je vérifie le fichier config.log, le premier m'a donné une erreur:
configure:3837: g++ -c -g -O2 -I/usr/local/include/bamtools conftest.cpp >&5
conftest.cpp:54:23: fatal error: BamReader.h: No such file or directory
compilation terminated.
Heiligenstadt d m'a donné l'erreur suivante:
configure:3837: g++ -c -g -O2 -I/usr/local/include/bamtools/api conftest.cpp >&5
In file included from conftest.cpp:54:0:
/usr/local/include/bamtools/api/BamReader.h:13:28: fatal error: api/api_global.h: No such file or directory
#include "api/api_global.h"^M
^
compilation terminated.
configure:3837: $? = 1
Le problème est avec BamReader.h essayant d'inclure api/api_global.h
Il est courant que les bibliothèques exigent d'inclure uniquement leur chemin de base plutôt que les sous-répertoires, afin d'éviter les conflits de noms avec les en-têtes standard ou les en-têtes provenant d'autres bibliothèques. –
L'utilisation du mot «api» dans le nom du répertoire des en-têtes d'une bibliothèque est une mauvaise pratique. L'en-tête devrait idéalement s'appeler ''. –
D'accord avec le commentaire de Roland. api est un terme générique, c'est inutile. –