在 Windows 中通过 Eclipse 使用 CMake 的 LibTorch:终止退出值 390
Posted
技术标签:
【中文标题】在 Windows 中通过 Eclipse 使用 CMake 的 LibTorch:终止退出值 390【英文标题】:LibTorch with CMake via Eclipse in Windows:Terminated exit value 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.cpp
和download_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。
谢谢, 阿夫辛
【问题讨论】:
【参考方案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
【讨论】:
以上是关于在 Windows 中通过 Eclipse 使用 CMake 的 LibTorch:终止退出值 390的主要内容,如果未能解决你的问题,请参考以下文章
使用套接字在eclipse android程序中通过IP地址发送消息
jmeter中通过beanshell访问eclipse中导出jar中的java类的方法
错误 - 在 windows 10/8.1 机器中通过 anaconda 使用 python pyspark