Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.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文件属性_C++_Cmake_Cuda - Fatal编程技术网

C++ 每个目标的CMake文件属性

C++ 每个目标的CMake文件属性,c++,cmake,cuda,C++,Cmake,Cuda,我之前问过:这非常有帮助。但后来意识到我有一个后续问题 我想做的是用不同的编译器编译一个文件两次。例如: cmake_minimum_required(VERSION 3.9) project(cuda_test LANGUAGES CUDA CXX) add_executable(cuda_test_host test.cpp) # build with GCC for host set_source_files_properties(test.cpp PROPERTIES LAN

我之前问过:这非常有帮助。但后来意识到我有一个后续问题

我想做的是用不同的编译器编译一个文件两次。例如:

cmake_minimum_required(VERSION 3.9)
project(cuda_test LANGUAGES CUDA CXX)

add_executable(cuda_test_host test.cpp)     # build with GCC for host

set_source_files_properties(test.cpp PROPERTIES LANGUAGE CUDA)
add_executable(cuda_test_cuda test.cpp)     # build with NVCC for CUDA
但是当然,
set\u source\u files\u properties
并不是特定于特定目标的,因此
cuda\u test\u host
cuda\u test\u cuda
最终都是由NVCC构建的


我在StackOverflow上看到过类似的问题,建议在中使用不同的CMake文件创建子目录,但如果可能的话,我希望避免这种情况。

您可以使用符号链接为同一文件指定另一个名称。将一个添加到第一个目标,另一个添加到第二个目标。使用,您可以在目标级别上修改一些。我不确定这是否是你想要的。@eerorika,我在第一篇文章中就有这个想法。作为一次性的,它当然非常吸引人,但在我的更广泛的设置中不太实用。谢谢你的意见。