【发布时间】:2012-09-03 20:17:58
【问题描述】:
这里的场景:
用 C/++ 创建一个漂亮的软件库/模块。
现在想要让新用户更容易使用这个库/模块。
因此希望提供所有包含设置、编译器标志和链接器设置都正确设置的 IDE 项目文件。
希望为不同平台下的许多不同 IDE 提供项目文件,例如:Linux(32 位和 64 位)、Windows(32 位和 64 位)、Mac(32 位和 64 位)、CodeBlocks、Eclipse CDT 、KDevelop3、CodeLite、Microsoft Visual Studio 等
(假设包含文件和库文件的所有路径以及所有编译器标志都是已知的。例如,通过可下载 SDK 的静态路径)
所以想要使用这个库的用户只需:
- 安装库/模块
- 选择正确的项目文件(取决于用户的操作系统和 IDE)
- 开始编码
- (所有包含设置、编译器标志和链接器设置都已在项目文件中正确设置)
- (用户无需手动设置包含设置、编译器标志和链接器设置)
如何从已知的包含设置、编译器标志和链接器设置中轻松生成此类项目文件。
我已经看过 CMake(它非常接近最终目标),但它会为 IDE 项目文件创建一个额外的 CMake 文件夹,并且不会将可能的示例源代码复制到构建目录中。 (也许可以让 CMake 在没有 CMake 文件夹的情况下生成项目文件并将源文件复制到构建文件夹中?)
【问题讨论】:
-
标准品牌。将项目文件与代码捆绑在一起是个坏主意。一些 IDE 可以利用现有的 Makefile。
-
Google 为 Chromium 开发了一个工具 gyp:code.google.com/p/gyp/wiki/GypVsCMake
-
顺便说一句,CMake 的首选用法是在源文件夹中没有二进制文件夹(构建输出)。我将它们放在一个完全不同的树中,并且具有这样的关系,即单个源树用于多个编译器/构建树。这样我就可以独立定位 32 位构建和 64 位构建,并使用几个不同的编译器版本。
-
这里有更多关于使用 CMake 构建源代码的信息:cmake.org/Wiki/…