如何将Windows上的taglib字符集设置为使用unicode?

如何将Windows上的taglib字符集设置为使用unicode?,unicode,build-automation,cmake,taglib,Unicode,Build Automation,Cmake,Taglib,TagLib使用CMake构建系统创建Visual Studio 2010解决方案和项目文件 生成的项目唯一的问题是字符集被设置为MBCS,而我希望它是Unicode 有没有办法通过CMake设置此选项 我目前正在使用它在VS2010命令提示符下在Windows上构建taglib: cmake -DWITH_MP4=ON -DENABLE_STATIC=ON . 以下命令应执行此操作: cmake -DCMAKE_CXX_FLAGS=/D_UNICODE .. 如果定义了\u Unicode

TagLib使用CMake构建系统创建Visual Studio 2010解决方案和项目文件

生成的项目唯一的问题是字符集被设置为MBCS,而我希望它是Unicode

有没有办法通过CMake设置此选项

我目前正在使用它在VS2010命令提示符下在Windows上构建taglib:

cmake -DWITH_MP4=ON -DENABLE_STATIC=ON .

以下命令应执行此操作:

cmake -DCMAKE_CXX_FLAGS=/D_UNICODE ..

如果定义了
\u Unicode
宏,则cmake会自动打开Visual Studio项目中的Unicode字符集。

除了Andrey的答案之外,您还可以通过以下方式在CMakeLists.txt文件中指定字符集:

target_compile_definitions (TargetName PRIVATE -D_UNICODE -DUNICODE
                                                     <additional defines>)
target\u编译\u定义(TargetName PRIVATE-D\u UNICODE-DUNICODE
)

确保同时定义UNICODE和_UNICODE。一个影响Win API,另一个影响CRT函数我们最好在cmake projet或cmake目标上设置unicode吗?在多目标项目(比如lib+exe)上,什么是好的实践?Unicode主要是一个接口问题(cmd、屏幕、文件、网络…),我们应该在哪里设置此约束?