【发布时间】:2014-04-20 11:29:22
【问题描述】:
我有一个 纯标准 C++ 的 Windows 控制台应用程序。我正在 Cygwin 1.7.16(在 Windows 7 上运行)为目标 Cygwin 1.5.24(在 Windows XP SP 2 上运行)构建它。
我的构建命令是: g++ -o mgen_stats.exe -I ../include ../src/*.cpp
在目标上,我的路径包括 /usr/bin,这是 cygwin1.dll 所在的位置。
当我在 Cygwin 1.5.24 shell 中在目标上运行不带参数的应用程序时,我会立即返回命令提示符。我应该会看到应用程序的使用情况打印出来。
我正在处理的一些不可变约束:
构建机器和目标机器相互隔离。
目标上没有 C++ 构建工具链。
我可能没有在目标上安装 C++ 构建工具链。
我不能修改我在构建机器上的 C++ 构建工具链。
由于上述原因,我必须在我的构建机器上构建,将 .exe 刻录到 CD,然后将其复制到目标机器上。
我很高兴我的应用程序能够成为本机 Windows 应用程序(即在 DOS shell 而不是 Cygwin 1.5.24 shell 中运行它)。为此,我尝试使用 g++ 构建标志 -mno-cygwin。 g++ 告诉我标志 -mno-cygwin 已被删除。然后它建议我“使用面向 mingw 的交叉编译器”。我不知道如何判断我是否有 mingw-gcc、mingw64-i686-gcc 和 mingw64-x86_64-gcc 软件包(根据 Cygwin 常见问题解答,其中包含建议的交叉编译器),如果我有他们,我不知道编译器可执行文件的名称是什么。
谁能帮我构建这个应用程序,使其能够在我的 Windows XP SP 2 目标上的 DOS 或 Cygwin 1.5.24 shell 下成功运行?
提前谢谢你。
【问题讨论】:
标签: c++ windows winapi cygwin windows-xp