如果我有一个基于Windows编译器的dll和.lib,我可以将它们与我用cygwin g ++编译的应用程序链接吗?如果没有,它将与linux g ++库构建一起使用吗?
是否可以从windows编译器生成库,cygwin g ++和linux g ++可交叉链接?
答案 0 :(得分:0)
不,没有。库和可执行文件特定于操作系统和处理器。您可以考虑移植的唯一内容是源代码,如果它是非常谨慎地编写的。一些库(例如QtCore,Gtk / Glib,......)正在抽象平台并为您提供一个通用API(可在许多操作系统上使用),但您仍需要为每个系统进行编译。
您可以定位虚拟机(如通过Java的JVM,或Lua字节码或Ocaml字节码,......)以获得额外的可移植性(以VM实现的成本为代价)。您也可以将软件编码为脚本(例如使用Python)。