0

我使用 cmake4eclipse 在 Windows 10 中构建了稳定的 Torch C++ 1.0 版。基本上,我有以下CMakeLists.txt构建mnist示例:

cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(mnist)

set(CMAKE_PREFIX_PATH "C:/rl/libtorch/share/cmake/Torch")
set(Torch_DIR "C:/rl/libtorch")

find_package(Torch REQUIRED)

option(DOWNLOAD_MNIST "Download the MNIST dataset from the internet" ON)
if (DOWNLOAD_MNIST)
  message(STATUS "Downloading MNIST dataset")
  execute_process(
    COMMAND python ${CMAKE_CURRENT_LIST_DIR}/download_mnist.py
      -d ${CMAKE_BINARY_DIR}/data
    ERROR_VARIABLE DOWNLOAD_ERROR)
  if (DOWNLOAD_ERROR)
    message(FATAL_ERROR "Error downloading MNIST dataset: ${DOWNLOAD_ERROR}")
  endif()
endif()

set(CMAKE_BUILD_TYPE Debug) 
add_executable(mnist mnist.cpp)
target_compile_features(mnist PUBLIC cxx_range_for)
set_property(TARGET mnist PROPERTY CXX_STANDARD 14)
target_link_libraries(mnist ${TORCH_LIBRARIES})

然后,我将其mnist.cpp与文件夹中的 和 文件一起加载,并在, versiondownload_mnist.py中启动一个项目。在project_properties->C/C++ Build->Tool Chain Editor中,我设置并选择. 然后,在project_properties->C/C++ General->Preprocessor Include Paths Macros etc.->Providers中,我选择并将其向上移动,如此处所述eclipse IDE for C/C++2018-09 (4.9.0)CMake Builder (GNU Make)MinGW GCCCMAKE_EXPORT_COMPILE_COMMANDS Parser [Shared]

然后,我可以编译mnist项目而不会出现任何错误。但是,当我运行它时,得到<terminated> (exit value 390) a.exe [some address]. 我试图调试此代码以找出问题,但我看不到调试屏幕,而是得到:

在此处输入图像描述

将调试模式运行到最后会导致相同的错误。我可以mnist.cpp毫无问题地在 Linux 中运行,尽管我cmake -G "Eclipse CDT4 - Unix Makefiles" ./是用来创建eclipse项目的。我不知道如何cmake -G "Eclipse CDT4 - Unix Makefiles" ./在 Windows 中使用,并且我使用过cmake4eclipse并且我相信我错过了在 Windows 中处理CMakeLists.txt文件的步骤。我感谢任何帮助或评论。

谢谢, 阿夫辛

4

1 回答 1

0

我在torch git中问了同样的问题,今天我得到了答案。目前看来,我们将无法使用 MinGw 通过 Eclipse 运行 Libtorch。这是我从 torch git page 得到的答案:

“我认为你不能用 MinGW 构建它,因为代码是用 c++ 编写的,而 MinGW 与 MSVC 不兼容。所以我认为你可能需要用 MSVC 编译。而且在 MSVC 中,配置调试和发布不能混合。所以你必须选择 Release,因为我们只提供具有 Release 配置的库。

查看更多详细信息: https ://github.com/pytorch/pytorch/issues/15711

于 2019-01-04T18:23:28.110 回答