0

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

生成文件.am

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

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

dep1.cpp undefined reference to dep1::method_name

请帮忙。几个小时以来,我一直用头撞键盘。没有关于制作库的教程。我能找到的唯一自动工具文档是 5 行 hello world 示例或 5000 页的零示例或上下文的书籍。

4

1 回答 1

1

您错误地命名了 _SOURCES 变量。你要:

libmylib_a_SOURCES = ...

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

Automake 没有就与已知对象不对应的 _SOURCES 变量发出警告,这让我有点惊讶。

于 2013-11-04T02:37:11.740 回答