我有一个用gcc 3.4.3编译的静态库,.I想在即将用gcc-4编译的代码中使用这个静态库。我模糊地读到过,gcc-3和gcc-4二进制文件不兼容,库需要重新编译,但只想确认这一点。有没有一个gcc-3库可以和gcc-4一起使用?
发布于 2011-05-10 03:58:43
让组织中的其他人或供应商将他们的库更新到gcc 4并不总是一种选择,特别是当他们已经放弃它的时候。
If C++:假设能够链接,在运行时,您可以在使用流的C++标准库模板代码中崩溃,因为g++ 4生成的符号将根据g++ 3生成的定义进行解析。
在链接时,您可能会看到以下警告:
/usr/bin/ld:警告:(传统静态库)所需的libstdc++.so.5可能与libstdc++.so.6冲突
下面是一个示例:基类析构函数~basic_stringbuf() (实际上是一个模板)可以在g++ 3下编译的模块中定义,它会被libstdc++so.6中的析构函数~basic_ostringstream()错误地调用,而libstdc++so.6中的析构函数是由g++ 4编译模块调用的。卡布姆。
我尝试过compat-libstdc++-33,但没有成功。
也就是说,我仍然将32位的gcc 3时代的C库链接到我的gcc 4.1.2 C++程序中。
https://stackoverflow.com/questions/5913530
复制相似问题