库已定义但没有规范名称

Posted

技术标签:

【中文标题】库已定义但没有规范名称【英文标题】:Library defined but no canonical name 【发布时间】:2014-05-10 00:36:00 【问题描述】:

我正在尝试使用自动工具构建项目并收到此错误:

$ autoreconf --install
automake: warnings are treated as errors
src/Makefile.am:3: warning: variable 'librombrowser_a_LDFLAGS' is defined but no program or
src/Makefile.am:3: library has 'librombrowser_a' as canonical name (possible typo)
autoreconf: automake failed with exit status: 1

src/Makefile.am 如下:

noinst_LIBRARIES = librombrowser.a
librombrowser_a_CPPFLAGS = $(GTK_CFLAGS)
librombrowser_a_LDFLAGS = $(GTK_LIBS)
librombrowser_a_SOURCES =                                                      \
                          rombrowser-app.c                                     \
                          rombrowser-app.h                                     \
                          rombrowser-cmds-file.c                               \
                          rombrowser-cmds-help.c                               \
                          rombrowser-cmds.h                                    \
                          rombrowser-dirs.c                                    \
                          rombrowser-dirs.h                                    \
                          rombrowser-settings.c                                \
                          rombrowser-settings.h

bin_PROGRAMS = rombrowser
rombrowser_SOURCES = rombrowser.c
rombrowser_LDADD = librombrowser

我看不出有什么问题。

【问题讨论】:

【参考方案1】:

_LDFLAGS 对静态库无效,仅对可执行文件或共享库有效。你可能想要_LIBADD。在我看来,错误消息可以改进。

【讨论】:

确实,如果你尝试使用_LDADD:error: use 'lib<name>_la_LIBADD', not 'lib<name>_la_LDADD',错误信息更有指导意义。

以上是关于库已定义但没有规范名称的主要内容,如果未能解决你的问题,请参考以下文章

Laravel/Eloquent 规范化 JSON 响应的关系?

无效的组件名称:“pages/product/_slug.vue”。组件名称应符合 html5 规范中的有效自定义元素名称

如何使CAD制图规范

URL 规范 整理

前端编码规范—— CSS 和 Sass (SCSS) 规范

命名规范