我正在尝试使用 cmake 设置 C++/CLI 项目。我已经使用 Visual Studio 2010 成功地做到了这一点,但我现在正在使用需要 Visual Studio 2008 的旧解决方案。在 Visual Studio 2010 中,像这样设置我的 cmake 就足够了:
set_target_properties(${PROJECT_NAME} PROPERTIES VS_DOTNET_REFERENCES "${CMAKE_CURRENT_SOURCE_DIR}/../OrionMaster/3rdParty/GMap.NET.Core.dll;System;System.Core;System.Data;System.Drawing;System.Xml;WindowsBase")
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/clr /EHa")
set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d")
if(CMAKE_CXX_FLAGS_DEBUG MATCHES "/RTC1")
string(REPLACE "/RTC1" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endif()
if(CMAKE_CXX_FLAGS MATCHES "/EHsc")
string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
然后,当我在 Visual Studio 2010 下检查该项目时,我可以看到所有引用并且“公共语言运行时支持”已打开。当我在 Visual Studio 2008 中尝试时,我没有看到任何引用,并且项目设置为“无公共语言运行时支持”如果我再查看编译器选项,我可以看到 /clr 正在传递给编译器. 但是我仍然得到很多编译器错误,可能是因为它缺少引用。有谁知道正确设置它的方法?