|
阅读:766回复:2
mumu,给你出道编译方面的题。
按下面的例子,提取所有c/c++头文件和源文件定义和变量的信息。
如:元程序如下 class a { public: a(); ~a(); protected: int i; void f(int x); }; void main() { int x; a f; { int x = 0; a.f(); { int l; } } } 结果。 name, type, params, line ::a, class, none; ::a::a, function | public | member, a::a(); ::a::~a, function | public | member, a::~(); ::a::i, int | protected | member, none; ::a::f, function | protected | member, none; ::main, function | var, void main(); ::main::x, int | var, none; ::main::f, a | var, none; ::main::#::x, int | var, 0; ::main::#::#::l, int | var, none; 因为不好数数,所以行数没写出来。用Lex实现,速度要快,结果放到map里面。type是一个结构,有类型,访问控制,类型名(string)等。 可以对有错误的代码进行扫描,尽可能获得更多的信息。 |
|
|
1C#
发布于:2001-11-20 21:54
Re:Re:mumu,给你出道编译方面的题。
这题并不难,你可以用g++里的lex文件改一下。
rpm可以到www.rpm.org查一下它的压缩和存档格式。压缩不是flat就是bz2,存档可能是cpio,把cpio还要移植过来。 |
|
|
2C#
发布于:2001-11-19 10:35
Re:mumu,给你出道编译方面的题。
比较复杂,我看书先。:D
还是先请教先生吧: 如果自己想做个2wins版的rpm开包工具,要从那里入手呢?(尚未看懂原码) 另外,做跨平台的程序有什么经验可谈呢? |
|
|