c++ - 使用 cmake 在 Linux for Windows 上交叉编译程序

标签 c++ c linux cmake cross-compiling

我正在尝试在我的 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 mashine 上的某个地方安装 openssl 的 Windows 版本才能让 cmake 找到它吗? 我试图将 CMAKE_PREFIX_PATH 设置为 openssl 的 linux 版本,但这对我来说似乎有些愚蠢。

感谢帮助

最佳答案

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

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

关于c++ - 使用 cmake 在 Linux for Windows 上交叉编译程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64941487/

相关文章:

c++ - 为什么会有单独的 "trie_node"和 "trie"结构?

c++ - 对 C++ 执行策略类型的动态控制

linux - 如何创建一个多次调用自身的 bash 文件?

c++ - 检查内存是否归零的最快方法

c++ - 如何将字符串从缓冲区粘贴到控制台程序?

c++ - 为特定的 mfc dll 调用 AfxEnableMemoryLeakDump

c++ - Eclipse C++ : fatal error: cheddar. h: 没有那个文件或目录

python - 如何在 C 中创建类似于 Python 的输出函数?

c - char a[] ="string"之间的区别;字符 *p ="string";

linux - 在 linux 中识别列中的各个条目