Set*_*reh 7 linux cross-platform build cmake toolchain
我正在Windows 32位上使用C++开发一个软件(使用MSVC++),但由于我希望能够在每个平台上使用我的软件,所以我决定使用CMake作为我的构建生成器.
因此,我仍然只是CMake的初学者.从CMake教程中,我了解到为了交叉编译代码,首先应该在主机平台上安装模拟目标平台的工具链.然后使用此工具链提供的适当的目标平台C和C++编译器,CMake将能够生成makefile等.
现在,我想在Win32平台上为Linux平台(GNU/Linux)构建我的代码.我尝试使用CMake结合Cygwin并使用gcc和g ++作为编译器来执行上述过程.它构建了精细的,创建的makefile,当我在Cygwin终端发出"make"时,生成的makefile被"制作".现在我有了一个我希望可以在Linux平台上运行的可执行文件.但在Linux上我得到错误:bash无法执行二进制文件.
使用命令文件executablename,我意识到由上述过程生成的可执行文件是PE32类型,仅适用于Windows.
现在我的问题是:我对使用cmake的跨平台构建过程的理解是否正确?或者我应该在Windows下使用另一个Linux工具链来获取Linux ELF可执行文件?什么工具链出现在你的脑海里,会给我我想要的东西?
非常感谢
火花报
小智 5
您将需要查看此处:https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/CrossCompiling如果您进行交叉编译.但是,我建议您在Windows机器上安装类似虚拟机的Linux VM,并在Linux上进行天真的构建.它编译速度更快,您不必担心交叉编译.您可以从Linux VM安装Windows磁盘,以便共享同一个源树.linux VM的编译速度比在windows下运行的gcc快得多.
| 归档时间: |
|
| 查看次数: |
7823 次 |
| 最近记录: |