【问题标题】:LibTorch with CMake via Eclipse in Windows:Terminated exit value 390在 Windows 中通过 Eclipse 使用 CMake 的 LibTorch:终止退出值 390
【发布时间】:2019-05-21 06:23:03
【问题描述】:

我使用 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.cppdownload_mnist.py 文件一起加载到一个文件夹中,并在eclipse IDE for C/C++ 版本2018-09 (4.9.0) 中启动一个项目。在project_properties->C/C++ Build->Tool Chain Editor中,我设置CMake Builder (GNU Make)并选择MinGW GCC。然后,在project_properties->C/C++ General->Preprocessor Include Paths Macros etc.->Providers中,我选择CMAKE_EXPORT_COMPILE_COMMANDS Parser [Shared]并将其向上移动,正如here所解释的那样。

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

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

谢谢, 阿夫辛

【问题讨论】:

    标签: c++ eclipse cmake torch libtorch


    【解决方案1】:

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

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

    查看更多详情: https://github.com/pytorch/pytorch/issues/15711

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 1970-01-01
      • 2014-12-02
      • 2017-04-30
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2012-03-26
      相关资源
      最近更新 更多