C++ windows交叉编译:cmake&;mxe:迷失在依赖中

C++ windows交叉编译:cmake&;mxe:迷失在依赖中,c++,qt,cmake,mxe,C++,Qt,Cmake,Mxe,我正在尝试使用cmake和MXE为Windows交叉编译 在尼克斯,一切都很好。然而,我不知道如何让一些依赖项(Grantle5和Qt5WebKitWidgets)与MinGW和交叉编译一起工作。 下面是我的CMakeLists.txt的一个(最小)示例: cmake_minimum_required(VERSION 2.8.11) project(MyProject) set(QT_USE_QTXML TRUE) set(QT_USE_QTWEBKIT TRUE) set(CMAKE_CX

我正在尝试使用cmake和MXE为Windows交叉编译

在尼克斯,一切都很好。然而,我不知道如何让一些依赖项(Grantle5和Qt5WebKitWidgets)与MinGW和交叉编译一起工作。 下面是我的CMakeLists.txt的一个(最小)示例:

cmake_minimum_required(VERSION 2.8.11)
project(MyProject)

set(QT_USE_QTXML TRUE)
set(QT_USE_QTWEBKIT TRUE)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall") 

# Instruct CMake to run moc automaticall when needed.
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

#find packages
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5Xml REQUIRED)
find_package(Grantlee5 REQUIRED)
find_package(Qt5WebKitWidgets REQUIRED) 
find_package(Git)

#(...) add all sources

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Tell CMake to create the executable
add_executable(MyProjectExec ${SRCS})

target_link_libraries(MyProjectExec
              Qt5::Widgets
              Qt5::Xml
              Grantlee5::Templates
              Qt5::WebKitWidgets
             )
如果我只使用“cmake”,效果很好。但是,如果我使用MXE的工具链交叉编译Widnows(i686-w64-mingw32.static cmake),Grantle5和Qt5WebKitWidgets将失败,并显示以下消息:

在CMakeLists.txt:xx(find_包)处出错:找不到 与兼容的包“Grantle5”的配置文件 请求的版本“”。[原文如此]

已考虑但未接受以下配置文件:

/usr/lib/cmake/Grantlee5/Grantlee5Config.cmake, version: 5.0.0 (64bit)
当然,我的Grantle5二进制文件与Windows/MinGW不兼容

外部项目添加(Grantle5 GIT存储库) 似乎交叉编译Grantle,但在安装目标失败(当然,我无法在我的系统上安装windows二进制文件)

add_library(grantle5/usr/local/src/grantlee/)分解find_library语句。Grantlee获得生成,但链接失败(包括Grantlee/engine.h未找到)

如何告诉cmake从源代码为特定目标构建Grantle和Qt5WebKitWidgets(同时使用可用的二进制文件进行动态链接)?“正确”的方法是什么