我有一个位于父目录a的项目。该脚本在3个不同的子目录中运行可执行文件。示例如下:
A
/ | \
B C D
现在,我想使用来自A的scrpit在B,C和D中编译cpp文件。
到目前为止,在我的脚本中,我删除了所有旧的CMakeCache.txt和Makefile文件以及CMakeFiles目录,以确保没有重叠。
我运行cmake B/
后跟make -C B/
。我为每个子目录执行此操作。但我收到错误CMake Error: The source "/home/ybouvron/Documents/A/B/CMakeLists.txt" does not match the source "/home/ybouvron/Documents/A/C/CMakeLists.txt" used to generate cache. Re-run cmake with a different source directory.
为什么我得到这个以及如何修复它?似乎它试图将两个编译为同一个项目,但在子目录中的每个CMakeLists.txt文件中,它们具有不同的项目名称和可执行文件名称。
提前致谢。
#! /bin/bash
echo Deleting old make files
rm B/CMakeCache.txt
rm -r B/CMakeFiles/
rm B/Makefile
rm C/CMakeCache.txt
rm -r C/CMakeFiles/
rm C/Makefile
rm D/CMakeCache.txt
rm -r D/CMakeFiles/
rm D/Makefile
set -e
echo Compiling subsystems...
cmake B
make -C B
cmake C/
make -C C/
cmake D/
make -C D/
答案 0 :(得分:0)
Dim PvtTbl As PivotTable
Dim PvtFld As PivotField
Dim MatchFound As Boolean, i As Long
' set the Pivot Table
Set PvtTbl = ActiveSheet.PivotTables("PivotTable1")
' set the Pivot Field
Set PvtFld = PvtTbl.PivotFields("GP#")
MatchFound = False ' reset flag
For i = 1 To PvtFld.PivotItems.Count ' loop through all pivot items
If PvtFld.PivotItems(i).Name = vGP(1) Then ' check if the second array element is found in one of the Pivot items
MatchFound = True ' raisw flag
Exit For
End If
Next i
If MatchFound Then
PvtFld.PivotItems(i).Visible = True ' apply filter if the array element found
End If
将子目录cmake B
中的项目配置为当前目录。 B
构建项目,该项目应配置为子目录B 。对于项目B的源代码构建,您需要make -C B
,因此cd B && cmake .
将构建该项目。
- Tsyvarev