如何在 Netbeans 中创建跨平台C++应用程序
How to create a cross-platform C++ application in Netbeans?
我在 Netbeans 8.0.1 中为 Linux 和 Windows 操作系统创建一个简单的"Hello world"跨平台C++应用程序时遇到了一些困难。我发现Windows的指令很少,Linux的指令也很少(我的操作系统是Ubuntu 14.04(。
我在互联网上的研究使我得出结论,应该为Windows操作系统再创建一个makefile。 通常,在创建C++项目时,Netbeans 友好地建议我们为我们创建一个生成文件。这很棒,但它仅适用于Linux。
我坚持创建Makefile(以前从未手动执行此操作(,因此这些是我为Windows创建makefile的步骤:
- 右键单击项目 -> 新建 -> 生成文件
- 文件名: "makefile-windows" -> 下一个
- 编译器:GNU编译器,平台:Windows -> Next
- 基目录:项目目录 -> 下一页
- 目标名称:hello-world("可执行文件"单选按钮(->添加->下一个
- 所有已创建文件的目录: GNU-amd64-Windows -> 下一页
- 输入源文件:main.cpp -> Next
- 要搜索包含文件的目录:留空 -> 下一个
- 选择要链接的库:无、链接模式:动态链接 -> 下一个
- 要链接的库:留空 -> 下一个
- 您希望如何构建代码?: 开发模式 -> 下一页
- , 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++代码可以是跨平台的。这是我的解决方案:
-
首先,我们不应该使用Linux GCC编译器来编译Windows应用程序。这就是为什么我们需要为Linux安装Windows编译器:
sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
-
其次,在创建生成文件时,我们应该指定替代编译器。用:
/usr/bin/i586-mingw32msvc-g++
默认:
g++
-
最后,在制作此生成文件后,我们的输出文件在 Windows 平台上变得可执行。
相关文章:
- 通过网络、跨平台传递std::变体是否安全
- 如何跨平台将二进制资源构建到程序中?
- 以跨平台的方式将图像源路径从C++发送到 QML
- 跨平台 GPU 计算
- 在哪里存储跨平台C++应用存储?
- 如何将外部依赖引入跨平台CMake项目?
- 将 VS Code 用于跨平台可缩放C++项目
- 创建跨平台 C++ 触摸管理器.在 c++ 中传递 Objective-c 对象涉及代码
- 使用通配符的跨平台文件列表
- 如何使用跨平台代码在C++中设置系统时间?
- 跨平台 c++ 和 Visual Studio 2017?
- 跨平台随机重现性
- c++中的交叉编译(作为跨平台应用程序的一部分或作为服务)
- 使用Visual Studio进行跨平台C++开发
- Visual Studio跨平台生成文件项目,找不到命令
- 如何制作跨平台图书馆
- 在VS2019中包含nuget包C++跨平台程序
- 跨平台 mySQL 与字符集不一致
- 只有一个可执行文件即可进行跨平台 SIMD 调用?
- 使特定于Unix的CMake过程跨平台