【发布时间】:2013-08-15 10:27:38
【问题描述】:
我是一名 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 几个小时无济于事。
【问题讨论】:
标签: linker autotools autoconf automake