【问题标题】:Cross-Compiling a program on Linux for Windows using cmake使用 cmake 在 Linux for Windows 上交叉编译程序
【发布时间】:2021-03-04 13:53:12
【问题描述】:

我试图在我的 Linux 系统上为 Windows 64x 交叉编译 nextcloud
到目前为止,我设法让 c 和 cxx 编译器运行,但 cmake 找不到 openssl。

c 编译器 = x86_64-w64-mingw32-gcc-posix
cxx 编译器 = x86_64-w64-mingw32-g++-posix

问题是 cmake 在使用 linux 编译器时找到了 openssl。
c 编译器= cc
cxx 编译器= c++

我在交叉编译方面没有经验。
我是否需要我的 linux 机器上某处的 windows 版本的 openssl 才能让 cmake 找到它? 我尝试将 CMAKE_PREFIX_PATH 设置为 linux 版本的 openssl,但这对我来说似乎有些愚蠢。

感谢您的帮助

【问题讨论】:

  • 如果我可以提出建议,MXE 过去对我来说效果很好:blog.kitware.com/cc-development-for-windows-sans-windows。
  • 谢谢,我会试试你的推荐。但这不能解决我的 openssl 问题,对吧? CMake 仍然需要一个 mingw 版本的 openssl,如下面的@yfelion 所述

标签: c++ c linux cmake cross-compiling


【解决方案1】:

你的 linux 编译器找到的 libssl 是一个 elf 库,它与 windows 所需的 pei 格式不兼容。 Mingw 无法链接到此库。

您需要一个 mingw 版本的 libssl 以及您想要链接的任何库。如果找不到 mingw 版本,需要自己交叉编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2017-05-24
    • 2021-01-21
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多