我正在使用MSVC++在Windows 32位上开发C++软件,但由于我想在每个平台上都能使用我的软件,因此我决定使用CMake作为我的生成器。
因此,我在CMake方面仍然只是一个初学者。从CMake教程中,我了解到为了跨平台编译代码,首先应该在主机平台上安装模拟目标平台的工具链。然后使用这个工具链提供的适当的目标平台C和C++编译器,CMake将能够生成makefile等。
现在,我想在Win32平台上为Linux平台(GNU/Linux)构建我的代码。我尝试使用CMake结合Cygwin,并使用gcc和g++作为编译器进行上述过程。它构建得很好,创建了makefile,在Cygwin终端中发出"make"命令时,生成的makefile也可以执行。现在我得到了一个可执行文件,希望它能在Linux平台上运行。但是在Linux上,我得到了错误:bash无法执行二进制文件。
使用command file executablename,我意识到通过上述过程制作的可执行文件是PE32类型,仅适用于Windows。
现在我的问题是:我对使用cmake的跨平台构建过程的理解是否正确?或者我应该在windows下使用另一个Linux工具链来获得Linux ELF可执行文件?您脑海中有哪些工具链可以给我想要的东西?
非常感谢。
Setareh
因此,我在CMake方面仍然只是一个初学者。从CMake教程中,我了解到为了跨平台编译代码,首先应该在主机平台上安装模拟目标平台的工具链。然后使用这个工具链提供的适当的目标平台C和C++编译器,CMake将能够生成makefile等。
现在,我想在Win32平台上为Linux平台(GNU/Linux)构建我的代码。我尝试使用CMake结合Cygwin,并使用gcc和g++作为编译器进行上述过程。它构建得很好,创建了makefile,在Cygwin终端中发出"make"命令时,生成的makefile也可以执行。现在我得到了一个可执行文件,希望它能在Linux平台上运行。但是在Linux上,我得到了错误:bash无法执行二进制文件。
使用command file executablename,我意识到通过上述过程制作的可执行文件是PE32类型,仅适用于Windows。
现在我的问题是:我对使用cmake的跨平台构建过程的理解是否正确?或者我应该在windows下使用另一个Linux工具链来获得Linux ELF可执行文件?您脑海中有哪些工具链可以给我想要的东西?
非常感谢。
Setareh