我目前正在使用 CMake 创建一堆 Visual Studio 2013 项目,并且它可以工作。
但是,自动创建的 ZERO_CHECK 和 ALL_BUILD 项目默认设置为使用 MBCS,尽管我希望它们使用 Unicode 字符集。
我确实通过以下内容为我的项目指定了 Unicode 字符集的使用:
ADD_DEFINITIONS(-DUNICODE)
ADD_DEFINITIONS(-D_UNICODE)
它起作用了。我尝试使用以下内容设置 C++ 编译器标志:
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /UMBCS /D_UNICODE /DUNICODE")
甚至 :
ADD_DEFINITIONS(-DUNICODE)
ADD_DEFINITIONS(-D_UNICODE)
在我的项目设置之前,但它根本不影响ZERO_CHECK和ALL_BUILD。
有任何想法吗 ?
我找到了解决方案。
感谢迈克,我意识到我正在寻找错误的方向。
由于 CMake 不允许访问元目标(我可以理解为什么),因此必须
设置Visual Studio环境,使MFC使用MBCS进行编译。
这个链接 http://blogs.msdn.com/b/vcblog/archive/2013/07/08/mfc-support-for-mbcs-deprecated-in-visual-studio-2013.aspx解释了为什么 Microsoft 删除了对 MFC 项目的本机 MBCS 支持,以及这个链接 http://www.microsoft.com/en-us/download/details.aspx?id=40770提供 MFC-MBCS 包的下载。
我会对此保持谨慎,因为我仍然希望我的项目使用 Unicode,并且我将相应地使用 CMake 标志。然而,ZERO_PROJECT 和 ALL_BUILD 现在编译得很好。
It is 拉曼·夏尔马的帖子 https://stackoverflow.com/questions/19603680/mbcs-error-building-mfc-c-project-with-visual-studio-2013这让我终于看到了曙光。
谢谢你们,你们让我很开心:D
此致 !
RL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)