2012-06-12 10 views
0

我有一个小问题,我的猜测是,这是不可能的,但永远不知道!gcc库使用更近的库

我正在开发Maya的插件,它仍然使用gcc-4.1.2进行编译。但是我想用新的C++ 0x进行编码。是否有可能编译和创建我的共享对象(让我们称之为X.so),然后通过共享对象(调用X_proxy.so)将我的函数映射到X.so中,但由具有较旧架构的程序使用。

该结构应该是:Maya - > X_proxy.so - > X.so!

X_proxy只是在那里将调用转发给X.so.这样,使用新工具进行开发并使其与旧工具(或使用旧工具的最新工具)兼容将很容易。

编辑:我看到的另一个解决方案可能是在* .cpp.o文件中使用最新版本的g ++编译* .cpp文件,然后使用旧版本的g ++来链接它们。这可能吗?

回答

1

只要名称映射OK,你应该没有代理罚款。您需要确保您将要使用的Maya头文件与更现代的编译器一起工作,但希望这不会成为问题,只需尝试一下。共享对象不必使用相同的编译器编译,或使用与加载它们并调用函数的程序相同的语言编写。

+0

但是当它不是相同的编译器版本时,我们遇到了可怕的问题!以及4.1.2和4.6之间...有很多不同之处,但它不起作用! – widgg

+0

有什么问题?链接或在运行时? – Julian

+0

只有运行时!即使在Autodesk网站上,他们也会解释如何安装gcc-4.1.2以开发插件!但是,能够使用新功能进行编码并使用旧功能会很好。从技术上讲,这是相同的机器代码,因此,这里可能有这样的可能性...... – widgg