VS編譯cmake工程提示 “無法識別的標記”錯誤解決方法


背景:

  在windows環境下,使用VS2017編輯cmake工程代碼並添加中文注釋后,編譯時出現“無法識別的標記”錯誤,編譯失敗。

原因:

  參考:vs編碼對編譯的影響(UTF-8 no BOM編譯通不過)

  UTF-8編碼分為帶BOM不帶BOM兩種,VS只支持帶BOM的,因此當文件為不帶BOM且有中文時,在VS下編譯可能出錯。

  而在linux中gcc編譯的時候,文件格式為utf-8無BOM格式,故跨平台時,必須使用無BOM格式的。

解決方法:

方法一(跨平台時不推薦)

  使用notepad++或vs code將文件格式轉換為UTF-8 with BOM編碼。

  notepad++

  vo code

方法二(cmake跨平台推薦)

  在CMakeLists.txt中加入以下代碼,增加對UTF-8的編譯支持

if(WIN32)
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>")
    add_compile_options("$<$<C_COMPILER_ID:MSVC>:/source-charset:utf-8>")
endif()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM