相关疑难解决方法(0)

为什么cmake文件GLOB邪恶?

CMake文档说明命令文件GLOB:

我们不建议使用GLOB从源树中收集源文件列表.如果在添加或删除源时没有更改CMakeLists.txt文件,则生成的构建系统无法知道何时请求CMake重新生成.

网络中的几个讨论线程第二个是通配源文件是邪恶的.

但是,为了使构建系统知道已添加或删除了一个源,这就足够了

touch CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

对?

然后,这比编辑CMakeLists.txt插入或删除源文件名更省力.也难以记住.所以我认为没有任何充分理由提出反对意见file GLOB.

这个论点有什么问题?

glob cmake

26
推荐指数
3
解决办法
1万
查看次数

如何使用cmake为嵌套子目录设置Visual Studio过滤器

我有以下结构

Main (dir)
      +-- CMakeLists.txt
      +-- File.cpp
      +-- File.hpp
      +-- Dir (dir)
          +-- CMakeLists.txt
          +-- File1.cpp
          +-- File1.hpp
          +-- File2.cpp
          +-- File2.hpp
Run Code Online (Sandbox Code Playgroud)

主/的CMakeLists.txt

CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
PROJECT(Main)
FILE(GLOB SOURCE
    "*.hpp"
    "*.cpp"
)

ADD_SUBDIRECTORY(Dir)
ADD_EXECUTABLE(Main ${SOURCE})
Run Code Online (Sandbox Code Playgroud)

主/ DIR /的CMakeLists.txt

FILE(GLOB LOCAL_SOURCE
    "*.hpp"
    "*.cpp"
)
SET(SOURCE
    ${SOURCE}
    ${LOCAL_SOURCE}
    PARENT_SCOPE
)
Run Code Online (Sandbox Code Playgroud)

它在Visual Studio中生成以下结构
在此输入图像描述

我想要的是:

在此输入图像描述 在此输入图像描述

我尝试了什么:

主/的CMakeLists.txt

CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
PROJECT(Main)
FILE(GLOB LOCAL_SOURCE
    "*.hpp"
    "*.cpp"
)

SET(SOURCE 
    ${LOCAL_SOURCE}
)

ADD_SUBDIRECTORY(Dir)

SOURCE_GROUP(Main FILES ${LOCAL_SOURCE})
ADD_EXECUTABLE(Main ${SOURCE})
Run Code Online (Sandbox Code Playgroud)

主/ DIR /的CMakeLists.txt

FILE(GLOB LOCAL_SOURCE
    "*.hpp"
    "*.cpp"
)
SET(SOURCE …
Run Code Online (Sandbox Code Playgroud)

c++ cmake visual-studio visual-studio-2012

17
推荐指数
3
解决办法
8962
查看次数

Visual Studio作为CMake友好项目的编辑器

我正在尝试使用Visual Studio作为编辑器来浏览GitHub上的大型开源项目.目录结构如下

/module1/include/
/module1/src/
/module2/include/
/module2/src/
...
Run Code Online (Sandbox Code Playgroud)

和构建由CMakeLists.txt维护.

如果我出于某种原因坚持使用Visual Studio作为编辑器(例如,良好的IntelliSense支持),那么最佳做法是什么?

  1. 我尝试了"New - Project from Existing Code".它产生丑陋的项目结构,其中所有*.cpp文件都在源文件过滤器下,而我仍然需要手动指定一堆/*/include /目录.

  2. 我试图实际使用CMake来制作视觉工作室解决方案.由于许多Linux依赖性,它立即失败了许多严重错误.

有没有办法创建一个具有适当的目录结构和包含路径的visual studio解决方案?

editor cmake visual-studio

5
推荐指数
1
解决办法
1280
查看次数

标签 统计

cmake ×3

visual-studio ×2

c++ ×1

editor ×1

glob ×1

visual-studio-2012 ×1