gpt4 book ai didi

c++ - 仅为从某种语言编译的对象添加链接库?

转载 作者:行者123 更新时间:2023-11-28 04:34:01 25 4
gpt4 key购买 nike

我有一个涉及 C++ 和 CUDA 代码的项目,特别是 - 其对象仅源自 C++ 代码的二进制文件(带有常规 C++ 编译器的编译器)和其对象仅源自 CUDA 代码的二进制文件(即 . cu 文件用 nvcc 编译)。

问题是,源自 C++ 的目标仍然进行一些 CUDA API 调用,因此依赖于 CUDA 库。

现在,为了链接源自 CUDA 的二进制文件,我不需要提及 CUDA 库;它链接良好,但对于源自 C++ 的库,我确实需要它们。

我如何告诉 cmake 只为我的 C++ 源目标link_libraries

或者 - 我是不是以错误的方式思考这个问题?

注意:我使用的是具有原生 CUDA 支持的 CMake >= 3.8,所以我不使用 cuda_ 前缀的命令。

最佳答案

您可能应该定义、创建不同的目标,例如通过 add_libraryadd_executable 然后使用 target_link_libraries(target_name [PRIVATE | INTERFACE | PUBLIC]library)。作为一般准则,您不应在目录级别(link_libraries、include_directories 等)上进行操作,例如建议作者:Daniel Pfeifer 在 this awesome talk .

关于c++ - 仅为从某种语言编译的对象添加链接库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060613/

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