代码之家  ›  专栏  ›  技术社区  ›  amit kumar

使用CGuess生成VisualStudioC++项目文件

  •  83
  • amit kumar  · 技术社区  · 16 年前

    我正在开发一个开源的C++项目,用于在Linux和Windows上编译的代码。我使用CMake在Linux上构建代码。为了便于开发设置和政治原因,我必须坚持使用Windows上的Visual Studio项目文件/编辑器(我无法切换到 Code::Blocks here .

    您以前是否使用CMake生成Visual Studio文件?你的经历怎么样?假设我想向我的项目中添加一个新文件。这方面的工作流程是什么?

    8 回复  |  直到 8 年前
        1
  •  63
  •   Peter Mortensen icecrime    8 年前

    CMake实际上在这方面做得很好。关键是Windows端的每个人都必须记住在加载解决方案之前运行CMake,而Mac端的每个人都必须记住在make之前运行CMake。

    最困难的部分是作为一名Windows开发人员,确保您的结构更改在cmakelist.txt文件中,而不是在解决方案或项目文件中,因为这些更改可能会丢失,即使没有丢失,也不会转移到同样需要它们的Mac端,Mac的伙计们需要记住,出于同样的原因,不要修改make文件。

    这只需要一点思考和耐心,但一开始会有错误。但是如果你正在使用 continuous integration 然后,双方都会很早就摆脱这种习惯,人们最终会养成这种习惯。

        2
  •  52
  •   Ghita    13 年前

    不确定这是否与问题直接相关,但我一直在寻找如何从cmake项目生成*.sln的答案。我发现可以使用以下内容:

    cmake -G "Visual Studio 10"
    

        3
  •  27
  •   JesperE    16 年前

    但总的来说,这是一个相当平稳的过渡。我们非常高兴,因为我们不再需要处理项目文件了。

    1. 创建文件,确保它位于正确的位置。
    2. 将文件添加到CMakeLists.txt。
    3. 建筑

    如果任何CMakeLists.txt文件已更改(并且(半)自动重新加载解决方案/项目),CMake 2.6将自动重新运行。

    请记住,如果您正在进行源代码外生成,则需要小心不要在生成目录中创建源文件(因为VisualStudio只知道生成目录)。

        4
  •  12
  •   ap-osd    10 年前

    CMake无缝地生产Visual Studio项目和解决方案。您甚至可以为不同的Visual Studio版本生成项目/解决方案,而无需对CMake文件进行任何更改。

    CMakeLists.txt 其中包含源文件列表和重新生成项目/解决方案。甚至还有一个globbing函数来查找目录中的所有源代码(不过使用时要小心)。

    下面的链接很好地解释了CMake和VisualStudio特定的行为。

    CMake and Visual Studio

        5
  •  10
  •   Stack Overflow is garbage    16 年前

    但是它很容易使用,而且我对生成无效文件或类似的东西没有任何问题,所以我不会太担心。

        6
  •  6
  •   Red XIII    14 年前

    CMake可以生成非常好的Visual Studio .projs .slns .cmake 文件而不是 .proj / .sln

    1. 所有源文件都转到 /src VisualStudio中可见的文件只是中定义的指向它们的“链接” .filter .
    2. 程序员添加/删除文件,记住在定义的
    3. 完成后,他运行一个脚本“刷新”相应的脚本 卡马克先生
    4. 他犯了罪。

    起初,我们有点担心结果会如何,但工作流运行得非常好,在每次提交之前都可以看到很好的差异,每个人都可以很容易地看到自己的更改是否正确映射到中 卡马克先生

    就我所知 )用于CMake中的“解决方案配置”。就目前而言,您必须生成

        7
  •  2
  •   S Meaden    7 年前

    这里有很多很好的答案,但它们可能会被这个取代 CMake support in Visual Studio (Oct 5 2016)

        8
  •  0
  •   TarmoPikaro    8 年前

    https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit# https://sourceforge.net/projects/syncproj/

    如果您打算使用VisualStudio进行开发,并且目前只支持C++。

    如果您不熟悉syncProj,您可以将您的解决方案/项目转换为.cs脚本,并从那时起继续进一步开发。