c -包含malloc_np.h的可移植方式



我使用的是包含malloc_np.h的第三方库。从我在网上找到的,这意味着代码应该在FreeBSD下编译,尽管简单地将包含更改为malloc.h使其在Linux (Ubuntu 13.10)下可编译。

现在我正在为这个库编写一个CMake脚本,以生成适当的make文件(包括NMake makefiles for MSVC 2010)。

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

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

${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()

编译时

使用增加。Predef库用于检测OS特定的功能

相关内容

  • 没有找到相关文章

最新更新