库已定义但没有规范名称
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 规范中的有效自定义元素名称