【问题标题】:Add files to cmake project in Visual Studio 2010在 Visual Studio 2010 中将文件添加到 cmake 项目
【发布时间】:2013-03-24 09:10:07
【问题描述】:

我在 linux 中使用 cmake 已经有一段时间了,但出于一些原因,我需要转而使用 Visual Studio 工作...

我生成了 cmake 项目,我可以在 Visual Studio 中加载解决方案,但是当我尝试添加文件时,它会添加到构建文件的位置,而不是添加到源目录中。有没有办法解决这个问题,还是必须通过资源管理器添加它们,然后重新生成 cmake 构建文件,然后重新打开解决方案?这似乎有点笨拙,我希望有一个更简单的方法。

【问题讨论】:

    标签: visual-studio-2010 visual-studio cmake projects-and-solutions


    【解决方案1】:

    是的,您应该通过 CMakeLists.txt 文件而不是通过 VS 添加文件。这里有几个选择。

    推荐的方法是在 CMakeLists 文件中明确列出所有源文件。如果要添加新文件,则必须将其添加到 CMakeLists.txt。这种方法的优点是修改CMakeLists文件后,整个构建是“过时的”,所以仅仅尝试在VS中构建任何目标都会导致CMake重新运行并将文件添加到适当的目标。

    另一个选择是使用 CMake 的 file(GLOB ...) 命令。这将在给定的路径中搜索来源,并可用于自动生成您的来源列表。好处是它比在 CMakeLists 文件中手动列出所有文件更简单。但是,缺点是如果将新文件添加到源目录,则必须手动重新运行 CMake,因为 CMake 不会知道源目录已过期。我不得不说,我通常不认为这是一个问题——如果你刚刚添加了一个文件并且它没有出现在你的 VS 资源管理器中,这很明显,当然到构建时它会更加明显,因为构建失败(或者你不是在使用该文件)。

    请注意,对于任一选项,如果您重新运行 CMake,则无需关闭 VS。

    【讨论】:

    • 谢谢你的回答,但是,我遇到的问题不是如何让 CMake 识别新文件,我已经用文件覆盖了那部分(GLOB .. .) 正如你所建议的那样。相反,我试图将一个全新的源文件放入项目中(最好是从 VS 资源管理器中)。目前看来我必须通过 Windows 探索来执行此操作,然后重新运行 CMake 以使文件显示在 Visual Studio 中。或者,如果我尝试通过 VS 资源管理器添加一个新文件,该文件将进入构建目录结构,而不是源代码。 (不需要)
    • 通过VS添加新文件时不能选择正确的目录吗? “添加新项目”窗口有一个“位置”字段,默认选择构建目录,但这可以很容易地更改为源代码树中的某个位置。
    • 这就是我想要的。我之前曾尝试过,但我没有仔细观察它是否在构建树中......哎呀! (如果您想将其作为新答案,我会接受)
    【解决方案2】:

    要通过 Visual Studio 添加新文件,您可以选择“添加 -> 新项目”选项。在结果窗口中,应该有一个“位置”文本输入框。这具有默认指定的构建目录,但可以轻松地将路径更改为源代码树中的某个位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-15
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多