我是一个 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
包含的目录。当我在没有自动工具的情况下编译时,包括通常的编译器标志可以正常工作:
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 搜索这个库,并让 automake 生成的 makefile 在编译时包含正确的链接/包含路径。最后,在手工编译的时候,总是需要LD_LIBRARY_PATH
使用命令修改环境变量
Export LD_LIBRARY_PATH=/opt/acml5.3.1/gfortran64_mp/lib:$LD_LIBRARY_PATH
理想情况下,我希望避免让用户这样做。抱歉,如果此信息已经存在,我查看了 SO 和 Google 几个小时无济于事。