Один из заголовка файла для примера BamReader.h из пакета bamtools будет установить наAC_CHECK_HEADER потерпеть неудачу, если заголовок пути установки имеет апите в нем
/usr/local/include/bamtools/api
Я попытался установить флаг включает либо:
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])])
Если я проверяю config.log файл, первый дал мне ошибку:
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.
Secon d дал мне следующую ошибку:
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
Проблема с BamReader.h пытается включить API/api_global.h
Обычно для библиотек требуется включить только базовый путь, а не подкаталоги, чтобы избежать конфликтов имен со стандартными заголовками или заголовками, поступающими из других библиотек. –
Использование слова «api» в названии каталога заголовков библиотеки является плохой практикой. Заголовок в идеале должен быть назван ''. –
Согласен с комментарием Роланда. api - такой общий термин, он бесполезен. –