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,我在第一篇文章中就有这个想法。作为一次性的,它当然非常吸引人,但在我的更广泛的设置中不太实用。谢谢你的意见。