我在这里尝试一些诡异的东西.我正在尝试编写C程序,用GNU g编译,但不依赖libstdc :),但似乎我需要甚至最基本的东西需要它.
具有可配置功能集的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; }
解决方法
原文地址:https://www.jb51.cc/c/113949.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。