gpt4 book ai didi

c - 包括 malloc_np.h 的便携方式

转载 作者:太空狗 更新时间:2023-10-29 15:35:45 24 4
gpt4 key购买 nike

我正在使用第三方库,其中包括 malloc_np.h .从我在互联网上发现的内容来看,这意味着代码应该在 FreeBSD 下编译,尽管只是将包含更改为 malloc.h。使其可在 Linux (Ubuntu 13.10) 下编译。

现在我正在为这个库编写一个 CMake 脚本来生成适当的 make 文件(包括用于 MSVC 2010 的 NMake makefile)。

在这种情况下实现可移植性的最佳方法是什么?

我目前的解决方案是测试:

${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"

在 CMake 脚本中。根据结果​​我发出一个

add_definitions (-DINCLUDE_MALLOC_H="#include <malloc[_np].h>")

命令并在源文件中使用此宏而不是 #include <malloc_np.h> .

这是一个好的做法吗?

最佳答案

生成时间

使用 CheckIncludeFile* 模块:

include(CheckIncludeFileCXX)

check_include_file_cxx("malloc.h" have_malloc)

if(have_malloc)
add_definitions(-DINCLUDE_MALLOC_H)
endif()

编译时间

使用boost.predef用于检测操作系统特定功能的库

关于c - 包括 malloc_np.h 的便携方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23816429/

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