具有可配置功能集的libstdc将是可以接受的.
我使用的命令是
g++ -nodefaultlibs -fno-rtti -fno-exceptions -lc
没有libstdc,我得到:
undefined reference to `operator delete(voID*)' undefined reference to `operator new(unsigned int)' undefined reference to `vtable for __cxxabiv1::__class_type_info' undefined reference to `vtable for __cxxabiv1::__si_class_type_info' undefined reference to `__cxa_pure_virtual'
这些不是在libc中,还有一个很轻的libstdc只能实现这些东西?
我想要这样构建的测试代码目前看起来像这样:
#include <stdio.h>template <class T>class X{ public: T a;};class A1{ public: virtual voID f() = 0; virtual ~A1() {}};class A2 : public A1{ public: virtual voID f() {}; virtual ~A2() {}};class Y{ public: ~Y() {}};int main(){ X<int> A; X<float> B; Y *C = new Y; A.a = 12; B.a = 2.3; printf("A: %d; B: %f\n",A.a,B.a); A2 *a2 = new A2; a2->f(); return 0;}解决方法 是的,像运算符new和operator delete这样的东西确实在C中定义,而不是在C中定义,所以在C的运行时库中,它们与C的运行时库相反,这是相当荒谬的(与用于C的“pure virtual”相同)明确地诊断对虚拟方法的错误调用,等等).如果您链接整个可执行文件,而不需要动态库访问,则链接器应该(希望依赖于C运行库编码的模块化),并选择您在代码中使用的标准C库的最低部分(和您使用的C特定功能越少,例如对于析构函数调用的新隐含删除,等等 – 当然,更有可能避免拉大图书馆块的空间;-). 总结
以上是内存溢出为你收集整理的g没有libstdc – 可以做吗? – 一个非常可配置的轻量级libstdc,我可以很容易地拿出东西也会做的伎俩全部内容,希望文章能够帮你解决g没有libstdc – 可以做吗? – 一个非常可配置的轻量级libstdc,我可以很容易地拿出东西也会做的伎俩所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)