关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
所以似乎有很多关于 Autotools 与 CMake 的文章,但就我的生活而言,我似乎找不到关于如何从 Autotools 转换项目的好教程(Makefile.am
和 configure.ac
文件)到 CMake( CMakeLists.txt
文件)。怎么做呢?
最佳答案
没有将任意构建系统从 autotools 转换为 cmake 的自动化工具。我已经手动转换了一些中等规模的项目。我喜欢创造一个 CMakeLists.txt
每组文件configure.ac
和/或 Makefile.am
文件,以简化从 autotools 到 cmake 的转换。
遗憾的是,这种手动方法需要开发两个系统的专业知识,任何一个都不应该加给任何无辜的人。
% ./configure [configure options] > configure_autotools.log
% make > make_autotools.log
% make install > make_install_autotools.log
configure.ac
的目录中或 Makefile.am
文件,包括项目根目录,创建一个新的空 CMakeLists.txt 文件。添加 cmake add_subdirectory
(...) 命令到每个非叶 CMakeLists.txt 文件以将所有 cmake 文件链接到树结构中。将 cmake project() 和 cmake_minimum_required() 命令添加到顶级 CMakeLists.txt 文件的顶部。project(MyProject) cmake_minimum_required(VERSION 2.8) add_subdirectory(foo)
message(...)
更深层的 CMakeLists.txt 文件中的命令以验证所有内容是否正确连接。请记住 message()
在调试 cmake 配置问题时是您的 friend 。立即尝试构建以确保您的 cmake 基础架构正常工作。什么都不会被构建或安装;但此时练习 cmake 基础设施很有值(value)。% mkdir build_cmake
% cd build_cmake
% ccmake -i [your project root]
[configure, configure, generate]
% make VERBOSE=1
% make install
add_library()
或 add_executable()
)。使用这种方法,您可以一次建立一个转换。 file(GLOB ...)
命令来紧凑地创建源文件列表。请注意,这是一个有争议的意见。 https://stackoverflow.com/questions/7132862/