gpt4 book ai didi

cmake - 如何让 cmake 查找第三方头文件 mpi.h 中类型的大小?

转载 作者:行者123 更新时间:2023-12-02 00:41:02 25 4
gpt4 key购买 nike

我正在开发一个涉及高性能计算和 MPI 库的自由软件项目。

在我的代码中,我需要知道 MPI_Offset 类型的大小,该类型在 mpi.h 中定义。

通常这样的项目会使用自动工具构建,这个问题很容易解决。但对于我的罪过,我正在使用 CMake 构建,但我找不到任何方法来执行这个简单的任务。但必须有一种方法可以做到 - 它通常在 autotools 项目中完成,所以我认为在 CMake 中也是可能的。

当我使用时:

check_type_size("MPI_Offset" SIZEOF_MPI_OFFSET)

失败,因为生成的 C 代码中未包含 mpi.h。

有没有办法告诉 check_type_size() 包含 mpi.h?

最佳答案

这是通过CMAKE_EXTRA_INCLUDE_FILES完成的:

INCLUDE (CheckTypeSize) 

find_package(MPI)
include_directories(SYSTEM ${MPI_INCLUDE_PATH})

SET(CMAKE_EXTRA_INCLUDE_FILES "mpi.h")
check_type_size("MPI_Offset" SIZEOF_MPI_OFFSET)
SET(CMAKE_EXTRA_INCLUDE_FILES)

使用自动工具编写平台检查可能更常见,因此这里有一些有关 how to write platform checks with CMake 的更多信息.

就个人而言,虽然 CMake 肯定不是最令人愉快的练习,但对我来说,自动工具是为大罪而保留的。我真的很难捍卫 CMake,但在这种情况下,它是 even documented 。当然,设置一个单独的“变量”,甚至必须在事后重置,而不是仅仅将其作为参数传递,显然符合 CMake 令人惊讶的“设计原则”。

关于cmake - 如何让 cmake 查找第三方头文件 mpi.h 中类型的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43123629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com