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

标签 c++ linux netbeans makefile cross-platform

我在 Netbeans 8.0.1 中为 Linux 和 Windows 操作系统创建简单的“Hello world”跨平台 C++ 应用程序时遇到了一些困难。我发现适用于 Windows 的说明很少,没有适用于 Linux 的说明(我的操作系统是 Ubuntu 14.04)。

我在互联网上的研究使我得出一个结论:应该为 Windows 操作系统再创建一个 makefile。通常,在创建 C++ 项目时,Netbeans 会善意地建议我们为我们创建一个 makefile。它很棒,但它只适用于 Linux。

我坚持创建 Makefile(以前从未手动完成过此操作),所以这些是我为 Windows 创建 makefile 的步骤:

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

因此,在我的 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;
}

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

最佳答案

正如 Borgleader 所说,只有 C++ 代码才能跨平台。这是我的解决方案:

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

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

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

    代替默认值:

    g++
    
  3. 最后,创建此 makefile 后,我们的输出文件就可以在 Windows 平台上执行。

关于c++ - 如何在 Netbeans 中创建跨平台 C++ 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27350475/

相关文章:

c++ - MSVC++ 可变宏扩展

linux - 将目录更改为尾部结果路径的 shell 脚本

css - sass 输出 : @media -sass-debug-info. 中出现奇怪的 "debug"错误 .. 困惑的 css 文件

C++:覆盖由另一个方法调用的 protected 方法

c++ - 在没有参数列表的情况下无效使用模板名称 'SmartArray'

c++ - IBM Bluemix 树莓派发送传感器数据

linux - 我使用 IP1 的 ssh 登录到一台机器。登录后,ifconfig/'ip addr' 的输出显示 IP2。为什么IP1和IP2不同?

linux - 查找和复制文件

java - HIbernate 查询语言错误

java - 如何在树中找到选定的节点?