Automake:如何在不安装的情况下构建共享库

时间:2017-01-18 23:39:44

标签: automake libtool

使用Automake,您可以构建一个共享库(.so),如下所示:

lib_LTLIBRARIES = libyeah.la
libyeah_la_SOURCES = yeah.c

然后使用libyeah.so$(libdir)安装到make install

当您指定noinst_前缀(而不是lib_)以避免安装库时,它不会构建为共享对象(仅存档,.a)。似乎该库实际上从未链接

我需要一个共享对象,而不需要安装它,用于项目测试(由测试程序动态加载的测试插件)。

我尝试将-module-shared添加到libyeah_la_LDFLAGS但未成功。

1 个答案:

答案 0 :(得分:0)

您可以绕过默认libdir并将其安装在其他目录中,而不是/usr/local/lib

make DESTDIR=/home/user/staging install

将在/home/user/staging/usr/local/lib中安装您的lib(如果您在--prefix时使用了默认configure。然后(在Linux上 - 你没有指定你的底层平台是什么)你可以:

LD_LIBRARY_PATH=/home/user/staging/usr/local/lib test_libyeah

运行测试。