如题,近日在cmake编译一个依赖Dlib的程序时报错nvcc fatal : redefinition of argument 'std'
检索发现一个解释的比较靠谱的回答,简单总结如下:

  1. 主要原因:
    CUDA_NVCC_FLAGS的编译参数中重复出现-std=c++11
  2. 解决办法:
    找到dlib-19.x/dlib/CMakeLists.txt文件中list(APPEND CUDA_NVCC_FLAGS "-std=c++11"),注释掉这一行,编译通过。
  3. 思考:
    作者在其博客提到说是由于cmake版本新旧导致,可我在两个不同程序(均依赖Dlib)编译时用的同一版本的cmake,也一样是一个通过一个不通过。应该还是其他地方引入了-std=c++11,导致的重复。
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐