如题,近日在cmake编译一个依赖Dlib的程序时报错nvcc fatal : redefinition of argument 'std'
检索发现一个解释的比较靠谱的回答,简单总结如下:
- 主要原因:
CUDA_NVCC_FLAGS
的编译参数中重复出现-std=c++11
- 解决办法:
找到dlib-19.x/dlib/CMakeLists.txt
文件中list(APPEND CUDA_NVCC_FLAGS "-std=c++11")
,注释掉这一行,编译通过。 - 思考:
作者在其博客提到说是由于cmake版本新旧导致,可我在两个不同程序(均依赖Dlib)编译时用的同一版本的cmake,也一样是一个通过一个不通过。应该还是其他地方引入了-std=c++11
,导致的重复。