我有一个 Autogen Makefile.am,我试图用它来为共享库构建测试程序。为了构建我的测试二进制文件,我想继续将共享库构建为目标,但我希望静态链接测试程序。在过去的几个小时里,我一直在尝试制作我的 Makefile.am 来让它做到这一点。
我已经尝试显式更改 LDADD 行以使用库的 .a 版本并得到一个未找到文件的错误,即使我可以看到这个库正在构建。
我尝试通过 LDFLAGS 将 .libs 目录添加到我的链接路径中,但仍然找不到它。
我尝试将我的库源移动到我的测试源列表中,但这不起作用,因为可执行目标文件的构建方式与静态库的不同。
我什至尝试为 .a 版本复制一个 lib_LIBRARIES 条目(因此同时存在一个 lib_LTLIBRARIES 和一个 lib_LIBRARIES),并将共享版本的所有 LDFLAGS、SOURCES、dir 和 HEADERS 复制为静态版本的一部分(将la替换为form _a_SOURCES = _la_SOURCES. 这仍然行不通,因为现在它无法弄清楚要构建什么。
我的 configure.ac 文件使用的是默认的 LT_INIT,它应该给我静态库和动态库,正如我所说,即使 libtool 看不到 .a 文件,它也正在构建两者。
请问有谁知道这个怎么做?