当前位置:  开发笔记 > 编程语言 > 正文

构建系统和可移植性

如何解决《构建系统和可移植性》经验,为你挑选了1个好方法。

我想知道我如何制作一个可移植的构建系统(一步一步),我目前使用cmake,因为它很容易设置,只有一个拱目标,但现在我必须打包我正在开发的库我想知道如何使它成为我正在测试的可移植的最佳方法.

我知道我需要一个config.h来定义取决于arch的东西,但我不知道它是多么自动化.

任何其他方式有一个构建系统是热烈欢迎!



1> jpalecek..:

你可以使用CMake,它非常简单.

你需要这些东西:

首先,意味着找出配置细节.例如,如果您知道某些功能在某些平台上的命名方式不同,您可以使用它TRY_COMPILE来发现:

TRY_COMPILE(HAVE_ALTERNATIVE_FUNC 
    ${CMAKE_BINARY_DIR}
    ${CMAKE_SOURCE_DIR}/alternative_function_test.cpp
    CMAKE_FLAGS -DINCLUDE_DIRECTORIES=xxx
)

alternative_function_test.cpp源目录中的文件位于哪里,仅使用备用定义进行编译.

HAVE_ALTERNATIVE_FUNC如果编译成功,这将定义变量.

其次,您需要使此定义影响您的来源.您可以将其添加到编译标志

IF(HAVE_TR1_RANDOM)
    ADD_DEFINITIONS(-DHAVE_TR1_RANDOM)
ENDIF(HAVE_TR1_RANDOM)

或者你可以制作一个config.h文件.config.h.in使用以下行创建

#cmakedefine HAVE_ALTERNATIVE_FUNCS

并在此处创建一个config.h文件CMakeLists.txt(参见参考资料CONFIGURE_FILE)

CONFIGURE_FILE(config.h.in config.h @ONLY)

#cmakedefine将被转换为#define#undef取决于CMake的变量.

BTW,测试edianness,请看这封邮件

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有