c++ - Cmake 托管 C++

标签 c++ cmake managed

我有我试图在 cmake 中配置的 cli 包装器功能。在我使用 cmake 生成项目后,生成的 .proj 文件没有 clr 支持的属性设置为没有公共(public)语言运行时支持。下面是我的 cmake 文件

    # This is the root ITK CMakeLists file.
    cmake_minimum_required(VERSION 2.8.9)
    if(COMMAND CMAKE_POLICY)
     cmake_policy(SET CMP0003 NEW)
    endif()

    set_target_properties(${TargetName} PROPERTIES COMPILE_FLAGS "/clr")
    SET(LINK_LIBRARIES
       D:\\2016\\RandomSlicing\\Processing\\lib\\obliquePlane.lib
    )
    # The header files
    SET(HEADERS
     ObliquePlaneWrapper.h
    obliquePlane.h
    )

 # The implementation files
  SET(SOURCES
   ObliquePlaneWrapper.cpp
  )

 # Find ITK.
 find_package(ITK REQUIRED)
 include(${ITK_USE_FILE})

 # Add this as include directory
 INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}
   ${SOURCE_PATH}
   ${VXL_INCLUDE_DIRS}
 )

 # Main library
 #ADD_EXECUTABLE(obliquePlane ${HEADERS} ${SOURCES})
 ADD_LIBRARY(ObliquePlaneWrapper SHARED  ${HEADERS} ${SOURCES})
 TARGET_LINK_LIBRARIES(ObliquePlaneWrapper ${LINK_LIBRARIES} ${ITK_LIBRARIES})            

我在All_build项目和对应的.proj文件中手动设置了这个属性。当我构建项目时,它正在搜索它应该生成的 ObliquePlaneWrapper.dll。这是一个问题,因为没有为公共(public)语言运行时支持设置一些标志

最佳答案

您可以手动向特定源提供编译标志,以便使用特定标志进行编译。这包括用于 Visual C++ 的\CLR。请参阅此处的示例。

https://cmake.org/pipermail/cmake/2011-April/043773.html

关于c++ - Cmake 托管 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40109200/

相关文章:

c++ - 如何杀死 Chrome 嵌入式框架子进程?

c++ - 如何在 CMakeLists.txt 中正确设置 CMake 标志

c++-cli - 简单地将 C++/CLI int^ 转换为非托管 int*

c# - 如何将 unsigned long * params 转换为 ulong[] params

.net - 如何判断是托管内存泄漏还是 native 内存泄漏?

c++ - 使用带有 O_DIRECT 标志的 libaio 读取文件

c++ - 如何显示文本中n个字母的单词数? C++

c++ - 如何在C++预处理中处理__VA_ARGS__?

cmake - CMake 的隐式规则

c++ - 由于架构 x86_64 的符号未定义,GLFW 的最小示例失败