Automake忽略了用于构建库的多个源文件

时间:2013-10-26 11:49:24

标签: static-libraries autotools

我正在尝试使用autotools创建一个静态库,但它只使用与库名相同的cpp文件并忽略其他源文件。

Makefile.am

AM_CXXFLAGS=-std=c++11
lib_LIBRARIES = mylib.a
mylib_a_SOURCES = dep1.cpp dep2.cpp mylib.cpp

automake并且不要抱怨,但它只编译mylib.cpp并将其转换为库。当我尝试链接它时,我会收到错误,例如

dep1.cpp undefined reference to dep1::method_name

请帮忙。几个小时以来,我一直在敲击键盘。没有关于制作库的教程。我能找到的唯一的autotool文档是5行hello world示例或5000个页面书籍,没有示例或上下文。

1 个答案:

答案 0 :(得分:1)

您正在错误地命名_SOURCES变量。你想要:

libmylib_a_SOURCES = ...

请参阅Automake手册中标题为“构建库”的节点......这是第一个示例。

我有点惊讶的是,Automake没有给出关于_SOURCES变量不对应已知对象的警告。