Моя компания хранит определенные файлы заголовков и библиотеки в нестандартном (но не меняющемся) месте.Autotools AM_CPPFLAGS (и другие) игнорируются?
Я пытаюсь добавить путь заголовка к сборке. Если я определяю переменную среды CPPFLAGS, я могу добавить пути поиска заголовка и найти заголовки. Но все попытки установить путь поиска изнутри configure.ac или src/Makefile.am не удались.
В Src/Makefile.am Я попытался
AM_CPPFLAGS = -I/path/to/headers
Но заголовки не найдены. Я попытался установить CPPFLAGS в configure.ac и Makefile.am, и это не сработает. Я пытался
AC_SUBST(CPPFLAGS, ['-I/path/to/headers'])
и без одинарные кавычки, также не повезло
Я пытался в ИПВ/Makefile.am
main_CPPFLAGS = -I/path/to/headers
Я бы предпочел не устанавливать переменная среды. Это потребует дополнительной инструкции и дополнительного шага к последовательности сборки (и документации). Любая идея, что мне не хватает?
Добавление
Я забыл упомянуть, что я кросс-компиляцию на MacOS для кронштейна хоста (не IOS).
Вот санированная версия src/Makefile.am. На данный момент у него есть несколько возможностей. Ни один из них не получает флаг -I компилятору. Установка переменной среды CPPFLAGS делает получает флаг -I компилятору.
SUBDIRS = .
bin_PROGRAMS = main
main_SOURCES = first.h second.h main.cpp
main_LDADD = -lone -ltwo
main_CPPFLAGS = -I/path/to/headers
AM_CPPFLAGS = -I/path/to/headers
INCLUDES = -I/path/to/headers
Ваш 'AM_CPPFLAGS = -I/путь/to/headers' правильный, он должен передать этот параметр -I вашему компилятору. Единственная причина, по которой я могу думать, что это не так, когда ваша версия automake очень старая или потому, что что-то с кросс-компиляцией заставляет ее вести себя иначе, чем я привык (я не использовал autotools для cross компиляция еще). –