在windows编译器、cygwin和linux g++;

在windows编译器、cygwin和linux g++;,linux,visual-studio,g++,cygwin,Linux,Visual Studio,G++,Cygwin,如果我有一个基于windows编译器的dll和.lib,我可以将它们链接到我正在用cygwin g++编译的应用程序吗?如果不是,它会与LinuxG++库构建一起工作吗 从windows编译器、cygwin g++和linux g++生成的库是否可以交叉链接?没有。库和可执行文件特定于操作系统和处理器。唯一可以考虑移植的是源代码,如果它是精心编写的。一些库(例如QtCore、Gtk/Glib等)正在抽象一个平台,并为您提供一个通用API(可在许多操作系统上使用),但您仍然需要为每个系统编译 您可

如果我有一个基于windows编译器的dll和.lib,我可以将它们链接到我正在用cygwin g++编译的应用程序吗?如果不是,它会与LinuxG++库构建一起工作吗


从windows编译器、cygwin g++和linux g++生成的库是否可以交叉链接?

没有。库和可执行文件特定于操作系统和处理器。唯一可以考虑移植的是源代码,如果它是精心编写的。一些库(例如QtCore、Gtk/Glib等)正在抽象一个平台,并为您提供一个通用API(可在许多操作系统上使用),但您仍然需要为每个系统编译


您可以针对虚拟机(如JVM thru Java、Lua字节码或Ocaml字节码等)来获得额外的可移植性(以牺牲VM实现的成本为代价)。您还可以将软件编码为脚本(例如,使用Python)。

我正在尝试使用外部库,它们提供库的windows版本和linux版本。所以,只有他们提供cygwin构建,我才能使用他们的库来实现我的目的?不,库的编译形式是操作系统和机器特定的。您必须为Windows和Linux提供单独的版本(甚至为Linux x86、Linux x86-64、Linux ARM等提供单独的版本)。您需要库的cygwin版本(或从源代码自己构建库)才能在cygwin下使用该库。