在Windows上编译命令行Linux程序

时间:2010-02-06 22:22:14

标签: c++ compilation

我需要编写一个相对简单的命令行C ++程序来运行Linux环境。但是,我想编写代码以及在Windows上编译它。我不想将它移植到Linux的原因是因为它需要MySQL交互,这需要一些混乱的移植(IMO)。它不必在Windows上运行;我只是想在Windows上编译它,因为我想使用我喜欢的IDE。

我已经看过Cygwin完成这项任务,但是我找不到任何文件要做我正在尝试做的事情。

4 个答案:

答案 0 :(得分:1)

MinGW + MSYS

MinGW提供了这项功能,MSYS提供了一个类似Linux的命令提示符,可以使用MinGW。

答案 1 :(得分:1)

当你获得cygwin时,安装C ++编译器/构建工具,例如gcc,g ++,make,autotools等。我认为这些都是你需要的,但我可能错了。无论如何,Cygwin安装程序易于使用,并且应该引入任何依赖项。

完成这些设置后,您可以将IDE配置为使用g ++作为默认编译器。您还需要设置库并正确包含路径,使它们指向$ CYGWIN(%CYGWIN%)下的相对/ usr / include和/ usr / lib目录。

(您的另一个选择是使用MinGW工具集,在这种情况下,IDE设置或多或少相同。)

答案 2 :(得分:1)

(我假设“..不想将它移植到Linux ..”是“.. 来自 Linux”的错字,并且您希望代码在Linux中运行正如你在第一句话中所说的那样。这意味着cygwin或mingw只会被用作交叉编译器而且不会非常有用。)

这个程序已经在Linux上构建和工作(或者主要工作),对吧?没理由改变这一点。使用首选编辑器(可能是IDE中的编辑器)编辑文件,然后在Linux系统(可能在VM中)中运行构建系统(可能是make)。使用samba共享导出文件(特别是从VM轻松导出),以便您可以编辑并自动远程保存。

请注意,您似乎很好地放弃了IDE的所有其他功能(主要是调试器和编译器),并且只是使用编辑器部分。


啊,你是不是从任何现有项目开始并想从头开始写这个?如果是这样,移植没有任何意义。 您希望编写跨平台代码。(跨平台或“可移植代码”与从一个平台“移植代码”到另一个平台的行为相关但不同。)

然后代码同时是“Windows代码”和“Linux代码”,您可以使用Windows上可以接受代码的任何编译器。通常,这会通过您坚持使用标准库和其他可移植库,或者为非可移植库编写填充程序来为它们提供可移植的接口,而编译器支持C ++标准。

在这种情况下,您可以使用首选IDE的编译器和调试器,而不需要cygwin或mingw。 (除非它们被您首选的IDE使用。:P)

答案 3 :(得分:0)

安装cygwin(tutorial),您将拥有一个EXE,可以为您提供所需的命令行提示。

Cygwin安装程序应该有一个选项来安装你正在寻找的任何编译器(gcc?)。

这是另一个relevant tutorial