如何在 Netbeans 中创建跨平台C++应用程序

How to create a cross-platform C++ application in Netbeans?

本文关键字:跨平台 C++ 应用程序 创建 Netbeans      更新时间:2023-10-16

我在 Netbeans 8.0.1 中为 Linux 和 Windows 操作系统创建一个简单的"Hello world"跨平台C++应用程序时遇到了一些困难。我发现Windows的指令很少,Linux的指令也很少(我的操作系统是Ubuntu 14.04(。

我在互联网上的研究使我得出结论,应该为Windows操作系统再创建一个makefile。 通常,在创建C++项目时,Netbeans 友好地建议我们为我们创建一个生成文件。这很棒,但它仅适用于Linux。

我坚持创建Makefile(以前从未手动执行此操作(,因此这些是我为Windows创建makefile的步骤:

  1. 右键单击项目 -> 新建 -> 生成文件
  2. 文件名: "makefile-windows" -> 下一个
  3. 编译器:GNU编译器,平台:Windows -> Next
  4. 基目录:项目目录 -> 下一页
  5. 目标名称:hello-world("可执行文件"单选按钮(->添加->下一个
  6. 所有已创建文件的目录: GNU-amd64-Windows -> 下一页
  7. 输入源文件:main.cpp -> Next
  8. 要搜索包含文件的目录:留空 -> 下一个
  9. 选择要链接的库:无、链接模式:动态链接 -> 下一个
  10. 要链接的库:留空 -> 下一个
  11. 您希望如何构建代码?: 开发模式 -> 下一页
  12. , 13.编译器选项:左侧默认值 -> 完成

结果,在我的GNU-amd64-Windows文件夹中制作这个新鲜出炉的makefile后,出现了一个对象文件(main.o(和一个可执行文件(hello-world(,但仍然只能在Linux中执行。当我尝试在 Windows 命令行中运行它时,出现错误:

"错误的命令或文件名">

以防万一这是我的主要内容.cpp:

#include <iostream>
int main( int argc, char** argv )
{
    std::cout << "Hello world" << std::endl;
    return 0;
}

如果我选择了错误的方式,那么应该怎么做?

如前所述,只有C++代码可以是跨平台的。这是我的解决方案:

  1. 首先,我们不应该使用Linux GCC编译器来编译Windows应用程序。这就是为什么我们需要为Linux安装Windows编译器:

    sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
    
  2. 其次,在创建生成文件时,我们应该指定替代编译器。用:

    /usr/bin/i586-mingw32msvc-g++
    

    默认:

    g++
    
  3. 最后,在制作此生成文件后,我们的输出文件在 Windows 平台上变得可执行。