1

我正在为我的项目集成 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@

这是我的项目
src 的文件结构 - 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

我按照该用户的建议查看它是否消除了错误:我应该使用哪个目录来处理“错误:使用了'extra_PROGRAMS'但'extradir'未定义”? 唉,事实并非如此。

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

我在 Mac OS X Mavericks (10.9)

  • 自动配置 2.69
  • 汽车制造 1.15
  • 库工具 2.4.6
  • 检查 0.9.14
4

1 回答 1

1

我做了几件事来成功构建这个项目。我首先遵循了我在这里概述的内容:检查框架示例在运行“./configure”时给我错误

然后我遵循了测试源文件的 c 检查框架的命名约定。

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

于 2015-04-20T09:00:04.760 回答