使用Automake,您可以构建一个共享库(.so
),如下所示:
lib_LTLIBRARIES = libyeah.la
libyeah_la_SOURCES = yeah.c
然后使用libyeah.so
将$(libdir)
安装到make install
。
当您指定noinst_
前缀(而不是lib_
)以避免安装库时,它不会构建为共享对象(仅存档,.a
)。似乎该库实际上从未链接。
我需要一个共享对象,而不需要安装它,用于项目测试(由测试程序动态加载的测试插件)。
我尝试将-module
和-shared
添加到libyeah_la_LDFLAGS
但未成功。
答案 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
运行测试。