Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用CMake将std::filesystem与CUDA结合使用_C++_Cmake_Cuda - Fatal编程技术网

C++ 使用CMake将std::filesystem与CUDA结合使用

C++ 使用CMake将std::filesystem与CUDA结合使用,c++,cmake,cuda,C++,Cmake,Cuda,我有一个已经描述过的类似问题,但我使用的是cmake 3.18.0 我的代码> CMAKLISTH.TXT < /Cord>文件,我有以下几行来启用正确的C++标准: set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CUDA_STANDARD 17) set(CMAKE_CUDA_STANDARD_REQUIRED ON) set(CMAK

我有一个已经描述过的类似问题,但我使用的是cmake 3.18.0

我的代码> CMAKLISTH.TXT < /Cord>文件,我有以下几行来启用正确的C++标准:

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_EXTENSIONS OFF)
set(CMAKE_CUDA_ARCHITECTURES OFF)
set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES ON)
但我仍然收到以下错误消息:
错误:名称空间“std”没有成员“filesystem”
。我准备了一份与我实际项目结构相近的报告

错误消息:

[main] Building folder: cuda-test 
[build] Starting build
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/Projects/C++/cuda-test/build --config Debug --target ALL_BUILD -- /maxcpucount:10
[build] Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
[build] Copyright (C) Microsoft Corporation. All rights reserved.
[build] 
[build]   test.cpp
[build]   test_library.vcxproj -> C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib
[build]   Compiling CUDA source file ..\..\test_prog\src\test.cu...
[build]   
[build]   C:\Projects\C++\cuda-test\build\test_prog>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu" 
[build] C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
[build]   
[build]   1 error detected in the compilation of "C:/Projects/C++/cuda-test/test_prog/src/test.cu".
[build]   test.cu
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 1. [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
[build] Build finished with exit code 1
Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 27/08/2020 20:51:34.
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" on node 1 (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
     2>InitializeBuildStatus:
         Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         All outputs are up-to-date.
       FinalizeBuildStatus:
         Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
         Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
     2>Done Building Project "C:\Projects\C++\cuda-test\build\ZERO_CHECK.vcxproj" (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\test_library\test_library.vcxproj" (3) on node 1 (default targets).
     3>InitializeBuildStatus:
         Creating "test_library.dir\Debug\test_library.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         All outputs are up-to-date.
       VcpkgTripletSelection:
         Using triplet "x64-windows" from "C:\Libraries\vcpkg\installed\x64-windows\"
       ClCompile:
         All outputs are up-to-date.
       Lib:
         All outputs are up-to-date.
         test_library.vcxproj -> C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib
       AppLocalFromInstalled:
         C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File "C:\Libraries\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib" "C:\Libraries\v
         cpkg\installed\x64-windows\debug\bin" "test_library.dir\Debug\test_library.tlog\test_library.write.1u.tlog" "test_library.dir\Debug\vcpkg.applocal.log"
       FinalizeBuildStatus:
         Deleting file "test_library.dir\Debug\test_library.tlog\unsuccessfulbuild".
         Touching "test_library.dir\Debug\test_library.tlog\test_library.lastbuildstate".
     3>Done Building Project "C:\Projects\C++\cuda-test\build\test_library\test_library.vcxproj" (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4) on node 2 (default targets).
     4>InitializeBuildStatus:
         Touching "test_prog.dir\Debug\test_prog.tlog\unsuccessfulbuild".
       CustomBuild:
         All outputs are up-to-date.
       AddCudaCompileDeps:
       Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files.
       AddCudaCompilePropsDeps:
       Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files.
       WriteCudaCompileTlogs:
       Skipping target "WriteCudaCompileTlogs" because all output files are up-to-date with respect to the input files.
     4>Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4) is building "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4:2) on node 2 (CudaBuildCore target(s)).
     4>CudaBuildCore:
         Compiling CUDA source file ..\..\test_prog\src\test.cu...
         cmd.exe /C "C:\Users\Jens\AppData\Local\Temp\tmp1de6300221cc483aa1ca166f3b73906a.cmd"
         "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\
         x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --c
         ompile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_p
         rog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"
         
         C:\Projects\C++\cuda-test\build\test_prog>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Commun
         ity\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x
         64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\v
         c142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu" 
     4>C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
         
         1 error detected in the compilation of "C:/Projects/C++/cuda-test/test_prog/src/test.cu".
         test.cu
     4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=c
       ompute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\c
       uda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"
       " -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 1.
        [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
     4>Done Building Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (CudaBuildCore target(s)) -- FAILED.
     4>Done Building Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (default targets) -- FAILED.
     1>Done Building Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.

       "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (default target) (4) ->
       "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (CudaBuildCore target) (4:2) ->
       (CudaBuildCore target) -> 
         C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch
       =compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++
       \cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug
       \"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 
       1. [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:02.61
详细错误消息:

[main] Building folder: cuda-test 
[build] Starting build
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/Projects/C++/cuda-test/build --config Debug --target ALL_BUILD -- /maxcpucount:10
[build] Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
[build] Copyright (C) Microsoft Corporation. All rights reserved.
[build] 
[build]   test.cpp
[build]   test_library.vcxproj -> C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib
[build]   Compiling CUDA source file ..\..\test_prog\src\test.cu...
[build]   
[build]   C:\Projects\C++\cuda-test\build\test_prog>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu" 
[build] C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
[build]   
[build]   1 error detected in the compilation of "C:/Projects/C++/cuda-test/test_prog/src/test.cu".
[build]   test.cu
[build] C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 1. [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
[build] Build finished with exit code 1
Microsoft (R) Build Engine version 16.6.0+5ff7b0c9e for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 27/08/2020 20:51:34.
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" on node 1 (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
     2>InitializeBuildStatus:
         Creating "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         All outputs are up-to-date.
       FinalizeBuildStatus:
         Deleting file "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
         Touching "x64\Debug\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
     2>Done Building Project "C:\Projects\C++\cuda-test\build\ZERO_CHECK.vcxproj" (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\test_library\test_library.vcxproj" (3) on node 1 (default targets).
     3>InitializeBuildStatus:
         Creating "test_library.dir\Debug\test_library.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
       CustomBuild:
         All outputs are up-to-date.
       VcpkgTripletSelection:
         Using triplet "x64-windows" from "C:\Libraries\vcpkg\installed\x64-windows\"
       ClCompile:
         All outputs are up-to-date.
       Lib:
         All outputs are up-to-date.
         test_library.vcxproj -> C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib
       AppLocalFromInstalled:
         C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -noprofile -File "C:\Libraries\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "C:\Projects\C++\cuda-test\build\test_library\Debug\test_library.lib" "C:\Libraries\v
         cpkg\installed\x64-windows\debug\bin" "test_library.dir\Debug\test_library.tlog\test_library.write.1u.tlog" "test_library.dir\Debug\vcpkg.applocal.log"
       FinalizeBuildStatus:
         Deleting file "test_library.dir\Debug\test_library.tlog\unsuccessfulbuild".
         Touching "test_library.dir\Debug\test_library.tlog\test_library.lastbuildstate".
     3>Done Building Project "C:\Projects\C++\cuda-test\build\test_library\test_library.vcxproj" (default targets).
     1>Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (1) is building "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4) on node 2 (default targets).
     4>InitializeBuildStatus:
         Touching "test_prog.dir\Debug\test_prog.tlog\unsuccessfulbuild".
       CustomBuild:
         All outputs are up-to-date.
       AddCudaCompileDeps:
       Skipping target "AddCudaCompileDeps" because all output files are up-to-date with respect to the input files.
       AddCudaCompilePropsDeps:
       Skipping target "AddCudaCompilePropsDeps" because all output files are up-to-date with respect to the input files.
       WriteCudaCompileTlogs:
       Skipping target "WriteCudaCompileTlogs" because all output files are up-to-date with respect to the input files.
     4>Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4) is building "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (4:2) on node 2 (CudaBuildCore target(s)).
     4>CudaBuildCore:
         Compiling CUDA source file ..\..\test_prog\src\test.cu...
         cmd.exe /C "C:\Users\Jens\AppData\Local\Temp\tmp1de6300221cc483aa1ca166f3b73906a.cmd"
         "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\
         x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --c
         ompile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_p
         rog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"
         
         C:\Projects\C++\cuda-test\build\test_prog>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Commun
         ity\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x
         64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\v
         c142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu" 
     4>C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
         
         1 error detected in the compilation of "C:/Projects/C++/cuda-test/test_prog/src/test.cu".
         test.cu
     4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch=c
       ompute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++\c
       uda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"
       " -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 1.
        [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
     4>Done Building Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (CudaBuildCore target(s)) -- FAILED.
     4>Done Building Project "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (default targets) -- FAILED.
     1>Done Building Project "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (default targets) -- FAILED.

Build FAILED.

       "C:\Projects\C++\cuda-test\build\ALL_BUILD.vcxproj" (default target) (1) ->
       "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (default target) (4) ->
       "C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj" (CudaBuildCore target) (4:2) ->
       (CudaBuildCore target) -> 
         C:\Projects\C++\cuda-test\test_library\include\utils/fs.h(6): error : namespace "std" has no member "filesystem" [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin\nvcc.exe" -gencode=arch
       =compute_52,code=\"sm_52,compute_52\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\bin\HostX64\x64" -x cu -rdc=true  -I"C:\Projects\C++\cuda-test\test_library\src" -I"C:\Projects\C++
       \cuda-test\test_library\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include"     --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static -Xcompiler="/EHsc -Zi -Ob0" -g   -D_WINDOWS -D"CMAKE_INTDIR=\"Debug
       \"" -DWIN32 -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" -D_MBCS -Xcompiler "/EHsc /W1 /nologo /Od /Fdtest_prog.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o test_prog.dir\Debug\test.obj "C:\Projects\C++\cuda-test\test_prog\src\test.cu"" exited with code 
       1. [C:\Projects\C++\cuda-test\build\test_prog\test_prog.vcxproj]

    0 Warning(s)
    2 Error(s)

Time Elapsed 00:00:02.61
如前所述,这是cmake v3.18.2或更低版本中的一个已知错误,有望在cmake v3.18.3中解决

为了解决这个问题,我在我的
CMakeLists.txt
中添加了以下几行:

# hack for cuda before cmake 3.18.3
if(${CMAKE_VERSION} VERSION_LESS "3.18.3")
  target_compile_options(cuda_test_prog PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:--std=c++17>)
endif()
#cmake 3.18.3之前的cuda黑客
如果(${CMAKE_VERSION}VERSION_减去“3.18.3”)
目标编译选项(cuda测试程序私有$)
endif()
如前所述,这是cmake v3.18.2或更低版本中的一个已知错误,有望在cmake v3.18.3中解决

为了解决这个问题,我在我的
CMakeLists.txt
中添加了以下几行:

# hack for cuda before cmake 3.18.3
if(${CMAKE_VERSION} VERSION_LESS "3.18.3")
  target_compile_options(cuda_test_prog PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:--std=c++17>)
endif()
#cmake 3.18.3之前的cuda黑客
如果(${CMAKE_VERSION}VERSION_减去“3.18.3”)
目标编译选项(cuda测试程序私有$)
endif()

显然,CMake没有将标准级别传播到nvcc@talonmies我知道,但问题是为什么?正如我正确理解的文档,它应该将
-std=c++17
传播到nvcc。可能需要对构建的详细输出进行一些详细检查。我像瘟疫一样避免CMake,所以我不能告诉你为什么我会添加一条详细的错误消息。我发现Craig Scott的一篇博客文章解释了CUDA_标准等的用法。但on说:“CXX_标准:对于没有标准级别概念的编译器,如MSVC,这没有任何效果。”显然,CMake没有将标准级别传播到nvcc@talonmies我知道,但问题是为什么?正如我正确理解的文档,它应该将
-std=c++17
传播到nvcc。可能需要对构建的详细输出进行一些详细检查。我像瘟疫一样避免CMake,所以我不能告诉你为什么我会添加一条详细的错误消息。我发现Craig Scott的一篇博客文章解释了CUDA_标准等的用法。但on说:“CXX_标准:对于没有标准级别概念的编译器,如MSVC,这没有任何效果。”