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