Я начинаю начинать с autotools, и я не могу понять, как правильно использовать внешнюю библиотеку с помощью autotools.Связывание общей библиотеки Autotools
Вот моя иерархия каталогов.
.
├── configure.ac
├── Makefile.am
├── README
└── src
(source files)
└── Makefile.am
Имя библиотеки является acml_mp
и, по умолчанию, установленный в /opt/acml5.3.1/gfortran64/lib
. Существует также каталог под названием /opt/acml5.3.1/gfortran64/include
для включения. Когда я компилирую без Autotools, в том числе обычных флагов компилятора работает отлично:
g++ ... -L/opt/acml5.3.1/gfortran64_mp/lib -I/opt/acml5.3.1/gfortran64_mp/include -lacml_mp ...
В configure.ac, я поставил команду AC_LIB_LINKFLAGS([acml_mp])
который я думаю, имеет дело только с -lacml_mp
флагом.
В принципе, конечной целью является поиск в autoconf для этой библиотеки и создание make-файла, сгенерированного automake, при правильной компоновке включают правильные пути link/include. Наконец, при компиляции вручную, я всегда нужно изменить переменную окружения LD_LIBRARY_PATH
с помощью команды
Export LD_LIBRARY_PATH=/opt/acml5.3.1/gfortran64_mp/lib:$LD_LIBRARY_PATH
, который, в идеале, я хотел бы избежать необходимости пользователь может делать. Извиняюсь, если эта информация уже существует, я просмотрел SO и Google в течение нескольких часов безрезультатно.