【发布时间】:2016-01-16 02:33:32
【问题描述】:
我目前正在家里的 Windows PC 上编写代码,我通过 SSH 连接在 Linux PC 上编译该代码。但由于生成的程序创建了一个 GUI,我无法真正测试它。除了 Linux 程序之外,是否可以创建一个可以在我的家用计算机上运行的 Windows exe? 这是我的 CMakeLists(使用 QT5):
cmake_minimum_required(VERSION 2.8.11)
project(p3)
set(CMAKE_PREFIX_PATH $ENV{QT5_QMAKE_DIR})
MESSAGE(STATUS "QT5_QMAKE_DIR: " ${CMAKE_PREFIX_PATH})
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_VERBOSE_MAKEFILE on)
set(CMAKE_AUTOMOC ON)
# Possibly set this to DEBUG for testing
set(CMAKE_BUILD_TYPE Release)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
#project source directories
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(OpenMP)
if (OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()
include_directories(
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Core_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
)
add_definitions(${Qt5Widgets_DEFINITIONS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
if(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
endif()
add_executable(p3
#.cpps and .hs
)
set_property(TARGET p3 PROPERTY CXX_STANDARD 11)
target_link_libraries(p3 ${Qt5Widgets_LIBRARIES})
【问题讨论】:
-
这是一个解决在 Linux 上为 Windows 编译的问题;接受的答案使用mingw,它不直接解决cmake,但看看:stackoverflow.com/questions/2033997/…
-
Alexander 建议使用 X11 转发是我用来在 Windows 上显示 Linux GUI 的方法,只是我使用 Putty and Xming 而不是 MobaXterm。我可以下载试试看。
-
我用过Putty和Xming有一段时间了。这是一段艰难的时期:)。说真的,设置起来有点困难。
-
我已经在使用 Putty,所以今天晚些时候我会试一试。感谢您的快速回答:)
标签: c++ linux cmake cross-compiling