【发布时间】:2019-03-21 22:27:36
【问题描述】:
我想用 CMakeLists.txt 中的 cmake 生成一个 Visual Studio 项目 2010。基本上这工作正常。然而,一个细节导致了我的以下观察:
生成的 Visual Studio 项目的默认字符集是“多字节字符”。我想将其更改为 Unicode。据我所知,我需要定义_UNICODE 或UNICODE,但我还需要取消定义_MBCS。如果我把它放在 CMakeLists.txt 中,这是可行的,但如果我想通过命令行设置这些定义,我无法让它工作:
CMakeList.txt,工作正常:
add_definitions ( -D_UNICODE )
remove_definitions ( -D_MBCS )
命令行,定义被cmake忽略,如果我这样做:
cmake -D_UNICODE="" -U_MBCS=""
命令行,定义被cmake忽略,如果我这样做:
cmake -DCMAKE_CXX_FLAGS_INIT="-D_UNICODE -U_MBCS"
我假设这两种方式是相同的,但显然从命令行处理定义是不同的。我做错了什么还是只能通过使用 add_definitions / remove_definitions 来实现?
顺便说一句,我使用的是 cmake 3.10。
【问题讨论】: