windows – 如何使用cmake在vcproj文件中设置属性?
Visual Studio的vcproj文件包含影响构建的各种设置或属性.例如,我试图转换为cmake的项目使用的一些项目是
StringPooling="true" RuntimeLibrary="2" TreatWChar_tAsBuiltInType="true" WarningLevel="3" Detect64BitPortabilityProblems="false" 当然还有很多其他的可以设置.问题是如何使用cmake生成项目时设置它们.有没有人知道如何在使用cmake时设置这些属性,而不是在事后编辑vcproj文件?我找不到任何解释如何通过cmake设置这些属性的东西.我知道如何设置的唯一一个是cmake专门为其提供跨平台的东西(例如PreprocessorDefinitions或AdditionalIncludeDirectories).但我需要能够设置特定于Visual Studio的那些. 解决方法
对于您列出的标志,您需要将以下内容添加到CMakeLists.txt:
if(MSVC) # StringPooling: true == /GF false == /GF- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GF") # RuntimeLibrary # 0 (MultiThreaded) == /MT # 1 (MultiThreadedDebug) == /MTd # 2 (MultiThreadedDLL) == /MD # 3 (MultiThreadedDebugDLL) == /MDd set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd") # TreatWChar_tAsBuiltInType: true == /Zc:wchar_t false == /Zc:wchar_t- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:wchar_t") # WarningLevel: /W<level 0 to 4> or /Wall set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3") # Detect64BitPortabilityProblems: /Wp64 - Deprecated since VC++ 2010 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Wp64") endif() 如果需要,您可以在一个电话中对这些进行分组: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GF /Zc:wchar_t /W3 /Wp64") 如果您只需要向单个目标添加标志(例如,MyTestExe),您可以执行以下操作: set_target_properties(MyTestExe PROPERTIES COMPILE_FLAGS "/GF- /W2") 通过此特定于目标的方法设置的选项将覆盖常规CMAKE_CXX_FLAGS变量中的任何冲突的选项. 有关这些命令的更多信息: cmake –help-variable “CMAKE_<LANG>_FLAGS_DEBUG” Visual Studio编译器选项列于here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- .net – AssemblyInfo属性如何映射到Win32 VERSIONINFO?
- winforms – 如何在高DPI上扩展Windows窗体按钮的图像?
- windows-10 – Wireshark没有显示我的网络接口?
- .net – 触摸WPF按钮有时不会调用Windows 8下的单击处理程序
- windows-server-2012 – RackSpace Cloud中IIS8和MSSQL 201
- windows-phone-8 – NuGet在安装包时添加引用错误
- windows-server-2003 – 无法在适用于Windows的Amazon EC2实
- windows – CreateThread vs fork()
- .net – 获取Windows服务启动类型?
- win10下安装FFmpeg步骤
- 替代Windows的Fsync c
- 在Windows7 – 32位系统上获取有关磁盘驱动器结果
- windows-8 – Windows 8.1客户端在重新连接到网络
- R Performance Differential(Solaris vs Windows
- windows-server-2008-r2 – Windows Server 2008
- windows – 如何更改nsis快捷方式的开头?
- windows – 我们局域网内的视频会议有哪些软件
- powershell-v2.0 – 如何在Powershell中使用BITS
- windows – 如何删除本地管理员权限?
- Windows Powershell是否具有Try/Catch或其他错误