gpt4 book ai didi

linux - 使用 CMake 在 Windows 下针对 Linux 进行跨平台构建

转载 作者:IT王子 更新时间:2023-10-29 00:33:09 26 4
gpt4 key购买 nike

我正在 32 位 Windows(使用 MSVC++)上用 C++ 开发一个软件,但由于我希望能够在每个平台上使用我的软件,我决定使用 CMake 作为我的构建生成器。

因此,我仍然只是 CMake 的初学者。从 CMake 教程中,我了解到为了交叉编译代码,首先应该在主机平台上安装一个模拟目标平台的工具链。然后使用此工具链提供的适当目标平台 C 和 C++ 编译器,CMake 将能够生成 makefile 等。

现在,我想在 Win32 平台上为 Linux 平台 (GNU/Linux) 构建我的代码。我尝试使用 CMake 结合 Cygwin 并使用 gcc 和 g++ 作为编译器来执行上述过程。它构建良好,创建了 makefile,当我在 Cygwin 终端中发出“make”时,生成的 makefile 被“made”了。现在我有了一个可执行文件,我希望它能在 Linux 平台上运行。但是在 Linux 上我得到错误:bash 无法执行二进制文件。

通过command file executablename,我发现用上面的程序制作的可执行文件是PE32类型,只适用于Windows。

现在我的问题是:我对使用 cmake 的跨平台构建过程的理解是否正确?或者我应该在 Windows 下使用另一个 Linux 工具链来获取 Linux ELF 可执行文件?您想到什么工具链可以满足我的需求?

非常感谢

雪花

最佳答案

你会想看这里:cmake-toolchains(7)如果你做交叉编译。但是,我建议你在你的 Windows 机器上安装一个 Linux VM,比如 virtual box,然后天真地在 Linux 上构建。它会编译得更快,你不必担心交叉编译。您可以从 Linux VM 挂载 Windows 磁盘,以便共享相同的源代码树。 linux VM 的编译速度比在 windows 下运行的 gcc 快得多。

关于linux - 使用 CMake 在 Windows 下针对 Linux 进行跨平台构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019788/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com