【问题标题】:clock_gettime not found on Mac OSX 10.11.6在 Mac OSX 10.11.6 上找不到clock_gettime
【发布时间】:2016-10-31 09:52:12
【问题描述】:

我正在尝试在 Mac 上构建 I-Simpa。

当我尝试在 spps 阶段构建时,我收到有关 clock_gettime not found 的错误。我尝试更改spps目录中的CMakelists.txt,如this question

check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)

if (NOT HAVE_CLOCK_GETTIME)
    set(CMAKE_EXTRA_INCLUDE_FILES time.h)
    CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
    SET(CMAKE_EXTRA_INCLUDE_FILES)
endif()

然后我得到错误:

未知的 CMake 命令“CHECK_FUNCTION_EXISTS”

【问题讨论】:

    标签: c macos cmake clock


    【解决方案1】:

    我猜你修改了 CMakeLists.txt 的 this part

    if (UNIX)
      include(CheckLibraryExists)
      check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME )
      if(NOT HAVE_CLOCK_GETTIME)
        message(FATAL_ERROR "clock_gettime not found")
      endif(NOT HAVE_CLOCK_GETTIME)
    endif(UNIX)
    

    如您所见,check_library_exists 为 CMake 所知,因为相应的模块之前已使用 include(CheckLibraryExists) 包含在内。

    同样,这只是一个猜测,但我很确定您没有包含 CHECK_FUNCTION_EXISTS 的模块。试试:

    check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)
    
    if (NOT HAVE_CLOCK_GETTIME)
        #**************************#
        include(CheckFunctionExists)
        #**************************#
        set(CMAKE_EXTRA_INCLUDE_FILES time.h)
        CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
        SET(CMAKE_EXTRA_INCLUDE_FILES)
    endif()
    

    这消除了“未知 CMake 命令”错误,但 clock_gettime 在 Mac OS 上不可用。请参阅this question 了解替代方案。

    【讨论】:

    • 感谢添加 include(CheckFunctionExists) 停止了未知的 Cmake 函数错误,但我仍然在 src/spps/CMakeLists.txt:68 处收到 CMake 错误:68(消息):找不到clock_gettime 我正在尝试执行此操作一台 Mac 和想法 Cmake 文件应该是什么样子?
    • 看起来clock_gettime 在 Mac OS 中不可用。请参阅this question 了解替代方案
    • 非常感谢为我节省了很多时间
    猜你喜欢
    • 2018-02-08
    • 2018-09-24
    • 1970-01-01
    • 2013-04-03
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多