gpt4 book ai didi

c++ - 有条件地将文件添加到 C++ 项目中的库

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:37 26 4
gpt4 key购买 nike

我有一个 CMake C++ 项目,其中包含一个库和多个可执行应用程序。该库包含许多文件,并且有条件地取决于用户是否想要 GPU 加速,库中的文件列表应该不同,例如

if (GPU_ACCELERATED) 
add_library(my_library
file1.h
file1.cc
gpu_file2.h
gpu_file2.cc
)
else()
add_library(my_library
file1.h
file1.cc
)
endif()

这是一种方法,但问题是我有大量文件,而不仅仅是 file1.h file1.cc 因此我非常强烈希望避免重复这样的文件列表。我宁愿像这样的东西工作(但没有)例如

add_library(my_library
file1.h
file1.cc
if (GPU_ACCELERATED)
gpu_file2.h
gpu_file2.cc
endif()
)

最佳答案

使用 set 命令创建和更新 CMake 变量:

set(my_SOURCES file1.h file1.cc)

if (GPU_ACCELERATED)
set(my_SOURCES ${my_SOURCES} gpu_file2.h gpu_file2.cc)
endif()

add_library(my_library ${my_SOURCES})

这将定义一个 my_SOURCES 变量,如果 GPU_ACCELERATED 为真,它将更新它。然后根据变量的内容创建您的库。

关于c++ - 有条件地将文件添加到 C++ 项目中的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20967696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com