如題,近日在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
,導致的重複。