【问题标题】:Check framework integration on project failed to build检查项目上的框架集成未能构建
【发布时间】:2015-04-18 13:41:00
【问题描述】:

我正在为我的项目集成 C 检查框架并且我能够运行

autoreconf --install

成功,没有任何错误。

但是当我集成 C 检查框架时,我收到了一个没有意义的错误和警告。

这是我遇到的错误

src/Makefile.am:7: warning: variable 'main_LDADD' is defined but no program or 
src/Makefile.am:7: library has 'main' as canonical name (possible typo)
tests/Makefile.am:2: error: 'SHELLTESTS_PROGRAMS' is used but 'SHELLTESTSdir' is undefined
tests/Makefile.am:3: warning:variable 'ShellTests_SOURCES' is defined but no program or
tests/Makefile.am:3: library has 'ShellTests' as canonical name (possible typo)  
tests/Makefile.am:5: warning: variable ShellTests_LDADD' is defined but no program or 
tests/Makefile.am:5:library has 'ShellTests' as canonical name (possible typo) 
                   autoreconf:automake failed with exit status: 1

我遵循了 C 检查示例源代码,这与我的项目之间的区别在于我的类使用了其他类的方法。

无论如何,这是我的测试下的 Makefile.am/正在对构建项目造成“破坏”

TESTS = shelltests
SHELLTESTS_PROGRAMS = shelltests

ShellTests_SOURCES = ShellTests.c $(top_builddir)/src/Shell.h $(top_builddir)/src/Parser.h $(top_builddir)/src/JobControl.h
ShellTests_CFLAGS = @CHECK_CFLAGS@
ShellTests_LDADD = $(top_builddir)/src/libshell.la @CHECK_LIBS@

这是我的项目的文件结构
源代码 - Parser.h、Parser.c、Shell.h、Shell.c、Job.h、Job.c、Makefile.am
测试 - ShellTests.c Makefile.am

这是 src 下 Makefile.am 中的代码。

lib_LTLIBRARIES = libshell.la 
libshell_la_SOURCES = Shell.c Shell.h Parser.h Parser.c JobControl.h JobControl.c
bin_programs = main 
main_sources = Main.c  
main_LDADD = libshell.la

我按照此用户的建议查看它是否消除了错误:What directory should I use for "error: 'extra_PROGRAMS' is used but 'extradir' is undefined"? 唉,事实并非如此。

我已经尝试构建示例项目 - 当您在示例下下载时获得的项目,看看我是否遗漏了任何东西。但它无法在我的机器上构建。

我使用的是 Mac OS X Mavericks (10.9)

  • Autoconf 2.69
  • Automake 1.15
  • Libtool 2.4.6
  • 检查 0.9.14

【问题讨论】:

  • 更新:我尝试运行示例目录以查看项目是否在我的机器上成功构建(我应该做的事情,我只是假设它可以在任何机器上工作)。在添加了他们的示例构建日志告诉我要做的事情之后。我在自己的项目上运行 ./configure 时遇到错误 - 这是没有检查集成:配置:错误:在“。”中找不到 install-sh、install.sh 或 shtool “./..” “./../..” 我正在向 c-check 组发送一张票。
  • 已经有一段时间了,但我似乎记得 Automake 文件中的字母大小写是不同的。例如,您键入了bin_programs,而它应该是bin_PROGRAMS。此外,由于您正在构建多个测试,您可能希望使用check_PROGRAMS += shelltests 而不是check_PROGRAMS = shelltests,其中check 是目标名称(例如make check)。我不确定 install-sh 的东西。我的猜测是关于 install-sh 等的错误。是错误的,是由于配置不正确造成的。我之前在使用 Autotools 构建系统时遇到过奇怪的错误。
  • @ChronoKitsune,我会试试你的建议。不幸的是,我在他们的示例中遇到了关于 install-sh 的构建错误,这里有更多信息:Check framework example giving me error when running './configure'

标签: autoconf check-framework


【解决方案1】:

我做了几件事来成功构建这个项目。我首先遵循了我在这里概述的内容:Check framework example giving me error when running './configure'

然后我按照 c 检查框架对测试源文件的命名约定。

感谢大家的帮助,它给了我一些关于编译错误原因的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多