首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查time.h / sys/time.h兼容性

检查time.h / sys/time.h兼容性
EN

Stack Overflow用户
提问于 2015-04-01 23:14:21
回答 2查看 932关注 0票数 1

我目前正在将一个autotools项目移植到CMake,该项目使用AC_HEADER_TIME autotools宏来检查是否可以同时包含time.hsys/time.h

如何使用CMake来完成这一任务?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-04 02:53:22

具体而言,这并不是时间测试,但对于如何完成这类工作的示例,您可以查看BRL中的示例:

test.c

然后,使用以下代码在CMake中进行测试:

代码语言:javascript
复制
CHECK_C_SOURCE_RUNS(${CMAKE_SOURCE_DIR}/misc/CMake/test_srcs/sys_wait_test.c SYS_WAIT_TEST_RUNS)

如果您不想尝试运行代码,也可以使用CHECK_C_SOURCE_COMPILES (我们通常这样做,但这种情况取决于情况)。有关使用变量控制编译方式的更多信息,请参见http://www.cmake.org/cmake/help/v3.0/module/CheckCSourceRuns.htmlhttp://www.cmake.org/cmake/help/v3.0/module/CheckCSourceCompiles.html。一般来说,如果需要设置这些变量,则需要在指定测试值之前缓存它们的当前值,然后在测试后恢复原始值,即

代码语言:javascript
复制
set(CMAKE_REQUIRED_FLAGS_CACHE ${CMAKE_REQUIRED_FLAGS})
set(CMAKE_REQUIRED_FLAGS "-foo_flag")
CHECK_C_SOURCE_RUNS(${CMAKE_SOURCE_DIR}/CMake/time_test.c TIME_TEST_RUNS)
set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_CACHE})

这些年来,我在测试中出现了一些令人困惑的行为,这些行为是由一次测试中遗留下来的干扰另一次测试造成的。

票数 2
EN

Stack Overflow用户

发布于 2015-04-02 17:02:02

您可以将编译()与样例源一起使用,该示例源同时使用#include文件并检查结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29402452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档