小编MrK*_*ler的帖子

CMake 和 VisualStudio:在解决方案资源管理器中对文件进行分组

为了完成一个项目的长时间编码会话,我想测试我的 CPP 项目是否可以在操作系统的安排上编译。

我一直在Win10下工作。编译得很好。
我试过树莓派。编译得很好。我将我的项目的单独副本重新下载到 Win10 客户端,运行 cmake-gui,然后打开该项目:我在解决方案资源管理器中的文件夹结构全部消失了。

所以我开始挖掘,显然这个结构保存在 CMakeLists.txt 的命令中source_group。所以我开始在我的 cmake 列表中添加更多的 source_groupings,并且由于某种原因我的分组不会被接受。

例子:
source_group("game\\entitysystem" FILES ${entitysystem_SRC}) // Existing grouping source_group("game\\entitysystem\\components" FILES ${components_SRC}) // My new grouping

我的 glob 是这样的:

file(GLOB components_SRC "game/components/*.h" "game/components/*.cpp" )

file(GLOB entitysystem_SRC "game/entitysystem/*.h" "game/entitysystem/*.cpp" )

我确实相信我的 GLOB 是正确的,因为新的项目克隆编译得很好。只是 Visual Studio 的解决方案资源管理器中新结构的每个部分似乎都丢失了。是的,我已经清除了 Cmake 的缓存并重新生成了项目。不会改变它。

原始结构: 原始文件夹结构

克隆项目结构: 克隆的文件夹结构

编辑:

我确实在我的 source_group 中犯了一个错误,因为它不应该将组件放在实体系统下,但是,为什么在 Visual Studio 中没有创建任何过滤器?

c++ cmake visual-studio cmake-gui

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

(Bash) 动态保存 n 个参数

我试图找到一种方法来动态存储我为 shell 脚本传递的所有参数在数组中。当我必须循环遍历每个参数以进一步使用它们时,这会有所帮助。

这就是我的问题的答案。

#!bin/bash
#Overloop alle gegeven argumenten en sla ze op in arg(plaatsvhargument)
arr=( "$@" )

#Code om te testen of het wel werkt
y=0
while [[ $y -lt $# ]]

do

        val=${arr[$y]}
        echo $val
        (( y++))
done
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做,从数组中取出每个参数。

for i in ${arr[@]}
do
        echo $i    
done
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我运行脚本时,我最终保存了参数的位置,并且在此过程中丢失了一个参数。例子:

bash testscript.sh 1 2 2 3 1  gives me 2 2 3 1 (empty)
Run Code Online (Sandbox Code Playgroud)

我做错了什么,你们对我的问题有什么解决办法吗?

bash arguments dynamic

2
推荐指数
1
解决办法
2707
查看次数

标签 统计

arguments ×1

bash ×1

c++ ×1

cmake ×1

cmake-gui ×1

dynamic ×1

visual-studio ×1