2

当我运行 make distcheck 时,没有安装一个库(在此示例中为 lib2),因为它需要 lib1。

有没有办法规定图书馆安装的顺序?

生成文件.am:

lib_LTLIBRARIES = libTwo.la libOne.la

libOne_la_SOURCES = lib/one/example.cpp \
    lib/one/example.h 

libTwo_la_SOURCES = lib/two/Example2.cpp \
    lib/two/Example2.h 

libTwo_la_CPPFLAGS = -I$(srcdir)/lib/one
libTwo_la_LIBADD = libOne.la

我在用:

  • 红帽企业服务器 5.5
  • 自动制作 (GNU 自动制作) 1.9.6

*编辑:* 这是我在 make distcheck 输出中看到的内容。

/usr/bin/ld: cannot find -lOne
collect2: ld returned 1 exit status
libtool: install: error: relink `libTwo.la' with the above command before installing it
/bin/sh ./libtool --mode=install /usr/bin/install -c  'libOne.la' '/tmp/xx-x-yy-21346    /home/foo/commonlib-1.0/_inst/lib/libOne.la'
4

1 回答 1

2

尝试交换:

lib_LTLIBRARIES = libTwo.la libOne.la

为了:

lib_LTLIBRARIES = libOne.la libTwo.la

lib_LTLIBRARIESIIRC,安装时的顺序。

于 2013-04-16T20:28:09.113 回答