我在Netbeans 8.0.1中为Linux和Windows操作系统创建一个简单的“Hello world”跨平台C ++应用程序时遇到了一些困难。我发现很少有针对Windows的指令,没有针对Linux的指令(我的操作系统是Ubuntu 14.04)。
我对互联网的研究使我得出结论,应该为Windows操作系统创建一个makefile。通常,在创建C ++项目时,Netbeans建议我们为我们创建一个makefile。它很棒,但它只适用于Linux。
我坚持Makefile创建(从未在手动之前完成),所以这些是我为Windows创建makefile的步骤:
因此,在我的GNU-amd64-Windows文件夹中创建这个新的烘焙makefile后,会出现一个目标文件(main.o)和一个可执行文件(hello-world),但仍然只能在Linux中执行。当我尝试在Windows命令行中运行它时,我收到错误:
“错误的命令或文件名”
以防这是我的main.cpp内容:
#include <iostream>
int main( int argc, char** argv )
{
std::cout << "Hello world" << std::endl;
return 0;
}
如果我选择了错误的方法,那该怎么做?
答案 0 :(得分:2)
正如Borgleader所提到的,只有C ++代码可以跨平台。这是我的解决方案:
首先,我们不应该使用Linux GCC编译器来编译Windows应用程序。这就是我们需要为Linux安装Windows编译器的原因:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
其次,在创建makefile时,我们应该指定替代编译器。使用:
/usr/bin/i586-mingw32msvc-g++
默认的输入:
g++
最后,制作此makefile后,我们的输出文件在Windows平台上变为可执行文件。