【问题标题】:Automake: how to build shared library without installing itAutomake:如何在不安装的情况下构建共享库
【发布时间】:2017-01-18 23:39:43
【问题描述】:

使用 Automake,您可以像这样构建共享库 (.so):

lib_LTLIBRARIES = libyeah.la
libyeah_la_SOURCES = yeah.c

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

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

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

我尝试将-module-shared 添加到libyeah_la_LDFLAGS,但没有成功。

【问题讨论】:

标签: automake libtool


【解决方案1】:

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

make DESTDIR=/home/user/staging install

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

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

运行您的测试。

【讨论】:

  • 我可能有点毛骨悚然,但问题是“如何在不安装共享库的情况下构建共享库”。大概是make install 没有安装它。您的回答显示了如何在其他地方安装它,这是一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 2015-02-03
  • 2013-12-13
  • 1970-01-01
  • 2012-02-13
相关资源
最近更新 更多