我是一个autotools初学者,我似乎无法弄清楚如何使用autotools正确使用外部库.
这是我的目录层次结构.
.
??? configure.ac
??? Makefile.am
??? README
??? src
(source files)
??? Makefile.am
Run Code Online (Sandbox Code Playgroud)
acml_mp默认情况下,库的名称是和/opt/acml5.3.1/gfortran64/lib.还有一个名为/opt/acml5.3.1/gfortran64/includeinclude 的目录.当我没有autotools编译时,包括通常的编译器标志工作正常:
g++ ... -L/opt/acml5.3.1/gfortran64_mp/lib -I/opt/acml5.3.1/gfortran64_mp/include -lacml_mp ...
Run Code Online (Sandbox Code Playgroud)
在configure.ac中,我输入了AC_LIB_LINKFLAGS([acml_mp])我认为只处理-lacml_mp标志的命令.
基本上,最终目标是对此库进行autoconf搜索,并使automake生成的makefile在编译时包含正确的链接/包含路径.最后,在手动编译时,我总是需要LD_LIBRARY_PATH使用命令修改环境变量
Export LD_LIBRARY_PATH=/opt/acml5.3.1/gfortran64_mp/lib:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想避免让用户这样做.抱歉,如果这些信息已经存在,我通过SO和Google查看了几个小时无济于事.