Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse必须处理C++的ABI兼容性问题吗?_Java_C++_Eclipse_Java Native Interface_Abi - Fatal编程技术网

Java Eclipse必须处理C++的ABI兼容性问题吗?

Java Eclipse必须处理C++的ABI兼容性问题吗?,java,c++,eclipse,java-native-interface,abi,Java,C++,Eclipse,Java Native Interface,Abi,Eclipse项目提供了一些新的功能。这些安装程序或已安装的可执行文件是否包含任何编译过的C++代码?如果是这样,伊柯丽斯如何避免C++与ABI兼容问题? 我认为Eclipse类的本机库必须全部用C语言编写。现在让我们忽略Windows。在查看SWT的源代码时,我注意到C++是用C++编写的。 那么,诀窍是什么?如果我从安装程序安装Eclipse,我会得到这些东西吗?如果是这样,它会工作,不管哪一个C++运行时在我的机器上?如果是,他们是如何做到的 为了抢先解决花生画廊:我意识到我可以使用包管理

Eclipse项目提供了一些新的功能。这些安装程序或已安装的可执行文件是否包含任何编译过的C++代码?如果是这样,伊柯丽斯如何避免C++与ABI兼容问题? 我认为Eclipse类的本机库必须全部用C语言编写。现在让我们忽略Windows。在查看SWT的源代码时,我注意到C++是用C++编写的。 那么,诀窍是什么?如果我从安装程序安装Eclipse,我会得到这些东西吗?如果是这样,它会工作,不管哪一个C++运行时在我的机器上?如果是,他们是如何做到的

为了抢先解决花生画廊:我意识到我可以使用包管理器来安装Eclipse。我问的是一个程序不是专门为我的机器定制的情况

我注意到,SWT使用JNI与操作系统中的本机小部件进行交互。SWT JNI库必须针对感兴趣的窗口系统、操作系统和硬件体系结构进行编译

这让我想到,那么Eclipse如何能够为Linux制作一个一刀切的安装程序呢?也许如果我只是尝试使用其中一个安装程序,一切都会变得清晰。但有时候最好问问你的上司

<>我试图理解JNI使用java项目如何处理C++ ABI兼容性问题。几天前我问了一个类似的问题,现在还没听到多少。我想Eclipse专家可能会给我一些指导,因为Eclipse可能需要处理类似的问题

只是要明确:java进程似乎基本上不能使用C++库。java进程需要C++运行时。如果共享库需要一个不兼容的C++运行时…嗯,你现在可能已经知道了


谢谢阅读这一切。

< P>我猜想是当他们构建它时,他们静态地将C++标准库链接到应用程序中,或者在安装程序中提供自己的动态库副本,然后GLIMC是唯一的其他动态库,更容易处理,尽管仍然有相关的挑战。它


测试方法之一是在linux上安装软件包,然后针对可执行文件运行ldd实用程序,查看它的链接所针对的内容。

C++ABI在Windows上是一场噩梦,MSVC版本太不同,加上调试与发布问题,加上迭代器调试等奇怪标志。运行时版本也一样。Alexandre:说得好。我将改变我们现在忽略Windows,因为C++ abi兼容性不是那个平台上的问题。现在我们就可以忽略Windows了。可能每个人都使用C++的便携:对于每个导出函数来说,ExcNC都是这样的吗?如果你不能从JNI调用C++函数,我会说ABI的确切原因,但是谁知道你得到了,因为它已经成为必须使用C函数的副作用。