我使用cmake4eclipse构建了Windows 10中稳定的割炬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->工具链编辑器中,我设置了CMake Builder (GNU Make)
并选择了MinGW GCC
。然后,在 project_properties-> C / C ++ General->预处理器包含路径宏等->提供程序中,选择CMAKE_EXPORT_COMPILE_COMMANDS Parser [Shared]
并将其向上移动,如here所述。
然后,我可以编译mnist
项目,而不会出现任何错误。但是,当我运行它时,得到<terminated> (exit value 390) a.exe [some address]
。我尝试调试此代码以找出问题所在,但看不到调试屏幕,而是得到:
将调试模式运行到最后会导致相同的错误。
尽管我使用mnist.cpp
创建了一个cmake -G "Eclipse CDT4 - Unix Makefiles" ./
项目,但是我可以在Linux上运行eclipse
没有任何问题。我不知道如何在Windows中使用cmake -G "Eclipse CDT4 - Unix Makefiles" ./
,而我使用cmake4eclipse
,我相信我错过了在Windows中处理CMakeLists.txt
文件的步骤。感谢您的帮助或评论。
谢谢, 苦参碱
答案 0 :(得分:0)
我在火炬git中问了同样的问题,今天我得到了答案。看来目前,我们将无法使用MinGw在Eclipse中运行Libtorch。这是我从火炬git页面获得的答案:
“我不认为您可以用MinGW来构建代码,因为代码是用c ++编写的,并且MinGW与MSVC不兼容。因此,我认为您可能需要使用MSVC进行编译。而且在MSVC中,配置调试和发布无法混用。因此,您将不得不选择Release,因为我们仅向库提供Release配置。”
有关更多详细信息,请参见: https://github.com/pytorch/pytorch/issues/15711