C++ 生成IDE项目文件

C++ 生成IDE项目文件,c++,c,build,ide,cmake,C++,C,Build,Ide,Cmake,以下是场景: 我们可以用C++创建一个漂亮的软件库/模块 现在我们想让新用户更容易使用这个库/模块 因此,我们希望提供IDE项目文件,其中正确设置了所有的include设置、编译器标志和链接器设置 人们希望在不同的平台下为许多不同的IDE提供项目文件,例如:Linux(32位和64位)、Windows(32位和64位)、Mac(32位和64位)、CodeBlocks、Eclipse CDT、KDevelop3、CodeLite、Microsoft Visual Studio等 (假设包含文件和库

以下是场景:

我们可以用C++创建一个漂亮的软件库/模块

现在我们想让新用户更容易使用这个库/模块

因此,我们希望提供IDE项目文件,其中正确设置了所有的include设置、编译器标志和链接器设置

人们希望在不同的平台下为许多不同的IDE提供项目文件,例如:Linux(32位和64位)、Windows(32位和64位)、Mac(32位和64位)、CodeBlocks、Eclipse CDT、KDevelop3、CodeLite、Microsoft Visual Studio等

(假设包含文件和库文件的所有路径以及所有编译器标志都已知。例如,通过可下载SDK的静态路径)

因此,想要使用此库的用户只需:

  • 安装库/模块
  • 选择正确的项目文件(取决于用户的操作系统和IDE)
  • 开始编码
  • (项目文件中已正确设置了所有包含设置、编译器标志和链接器设置)
  • (用户无需手动设置包括设置、编译器标志和链接器设置)
如何从已知的include设置、编译器标志和链接器设置轻松生成此类项目文件

我已经看过了CMake(它非常接近最终目标),但是它会在IDE项目文件中创建一个额外的CMake文件夹,并且不会将可能的示例源代码复制到构建目录中。 (也许可以让CMake在不使用CMake文件夹的情况下生成项目文件,并将源文件复制到build文件夹中?)

(所有包括设置、编译器标志和链接器设置都已设置。) 在项目文件中正确设置)

(用户无需手动 设置(包括设置、编译器标志和链接器设置)

只有当您的项目没有依赖项时才有可能。否则,您无法知道deps的LIB和标头在用户计算机上的位置

CMake正是为此而创建的—查找依赖项并生成项目文件

但它会在IDE项目文件中创建一个额外的CMake文件夹

如果您谈论的是二进制目录,那么它可以位于任何位置,而不是项目目录中所必需的位置

并且也不会将可能的示例源复制到构建目录中


可以使用
配置_文件
功能,或通过运行
${CMAKE_程序}-E copy

标准制作。将项目文件与代码捆绑在一起是个坏主意。一些IDE可以利用现有的Makefile。Google开发了一个工具gyp来为Chromium实现这一点:顺便说一句,CMake的首选用法是在源文件夹中没有二进制文件夹(构建输出)。我将它们放在一个完全不同的树中,并且有一个关系,使得一个源代码树用于多个编译器/构建树。通过这种方式,我可以独立地针对32位版本和64位版本,并使用几种不同的编译器版本。这里有关于使用CMake进行源代码外构建的更多信息: