Eclipse 项目为 Linux 提供了安装程序。这些安装程序(或已安装的可执行文件)是否包含任何已编译的 C++ 代码?如果是这样,Eclipse 如何避免 C++ ABI 兼容性问题?
我认为 Eclipse 的本地库(如SWT)都必须用 C 编写。(我们现在先忽略 Windows。)查看 SWT 的源代码时,我注意到与XPCOM 相关的代码是用 C++ 编写的。
那么诀窍是什么?如果我从安装程序安装 Eclipse,我会得到这些东西吗?如果是这样,无论我的机器上使用哪个 C++ 运行时,它都能正常工作吗?如果是这样,“他们”是如何做到的?
(先发制人地解决花生画廊:我意识到我可以使用包管理器来安装 Eclipse。我问的是程序不是专门为我的机器量身定制的情况。)
我注意到SWT FAQ 解释说,“SWT 使用 JNI 与操作系统中的本机小部件进行交互。必须针对感兴趣的窗口系统、操作系统和硬件架构编译 SWT JNI 库。”
这让我想,“那么 Eclipse 如何能够为 Linux 制作一个万能的安装程序呢?” (也许如果我只是尝试使用这些安装程序之一,一切都会变得清晰。但有时最好问问你的更好的人。)
我试图了解使用 JNI 的 Java 项目如何处理 C++ ABI 兼容性问题。前几天问了一个类似的问题,还没有听到太多消息(Is the Java Native Interface (JNI) impacted by C++ ABI compatible issues?)。我认为 Eclipse 专家可能会给我一些指导,因为 Eclipse 可能必须处理类似的问题。
需要明确一点:Java 进程似乎基本上不能使用 C++ 库。Java 进程需要 C++ 运行时。如果一个共享库需要一个不兼容的 C++ 运行时......好吧,你现在可能明白了。
(感谢您阅读所有这些内容。)