c++ - 测试和自定义构建目录的组合

标签 c++ c compilation autotools

我遇到了 autotools 的问题。

我需要对测试和自定义构建目录的支持(主源目录除外)。 Autotools 似乎在提示:

src/lib/Libattr/test/attr_atomic/Makefile.am:18: 错误:在 TESTS 中使用“$(top_srcdir)”目前已损坏:“$(top_srcdir)/src/test/coverage_run.sh '

显然 $(srcdir) 也是如此。单元测试需要手动设置包含和源路径,因为它需要来自源树中不同位置的 header 和文件。

如果我不能使用 $(srcdir)$(top_srcdir),我该如何引用源代码树的根目录?

最佳答案

我怀疑问题是您的自动测试工具由 Older (and discouraged) serial test harness的规则 并且解决方案是按照更新和相应的规则进行游戏 鼓励Parallel Test Harness

在后者中,正如您将从链接中的示例代码中收集到的那样,您没有在 TESTS 中提及 $(top_srcdir) et al 。你 在 AM_TESTS_ENVIRONMENT 中提及它们:

这是一个说明性的 Makefile.am 片段,对我来说效果很好:

...
CORE_TESTS = coan_case_tester.py coan_bulk_tester.py coan_spin_tester.py \
coan_symbol_rewind_tester.py coan_softlink_tester.py
if MAKE_CHECK_TIMING
TESTS = $(CORE_TESTS) coan_test_metrics.py
else
TESTS = $(CORE_TESTS)
endif

AM_TESTS_ENVIRONMENT = COAN_PKGDIR=$(top_srcdir); \
    COAN_BUILDDIR=$(top_builddir); TIMING_METRICS=$(TIMING_METRICS_ENABLED); \
    rm -f coan.test_timer.time.txt; \
    export COAN_PKGDIR; export COAN_BUILDDIR; export TIMING_METRICS;
LOG_COMPILER = python

关于c++ - 测试和自定义构建目录的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28961678/

相关文章:

c++ - 有没有办法禁止转换为 C++ 中非常量的子类?

c++ - OpenGL 程序不会显示任何对象?

将 32 位指针转换为 64 位整数

linux - 无法编译qc-usb驱动?

c++ - 错误 : "2 overloads have similar conversions"

c++ - 使用 UTF-8 时带有奇怪字符的 SFML 标题栏

C++ : memory management

无法执行动态链接的程序

c++ - 如何使用 opencv contrib 模块编译 tldTracker

java - Java客户端连接后C服务器崩溃