⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 src-dep.pl

📁 mediastreamer2是开源的网络传输媒体流的库
💻 PL
字号:
#!/usr/local/bin/perl# we make up an array of# $file{function_name}=filename;# $unres{filename}="func1 func2 ...."$debug=1;#$nm_func="parse_linux";$nm_func="parse_solaris";foreach (@ARGV)	{	&$nm_func($_);	}foreach $file (sort keys %unres)	{	@a=split(/\s+/,$unres{$file});	%ff=();	foreach $func (@a)		{		$f=$file{$func};		$ff{$f}=1 if $f ne "";		}	foreach $a (keys %ff)		{ $we_need{$file}.="$a "; }	}foreach $file (sort keys %we_need)	{#	print "	$file $we_need{$file}\n";	foreach $bit (split(/\s+/,$we_need{$file}))		{ push(@final,&walk($bit)); }	foreach (@final) { $fin{$_}=1; }	@final="";	foreach (sort keys %fin)		{ push(@final,$_); }	print "$file: @final\n";	}sub walk	{	local($f)=@_;	local(@a,%seen,@ret,$r);	@ret="";	$f =~ s/^\s+//;	$f =~ s/\s+$//;	return "" if ($f =~ "^\s*$");	return(split(/\s/,$done{$f})) if defined ($done{$f});	return if $in{$f} > 0;	$in{$f}++;	push(@ret,$f);	foreach $r (split(/\s+/,$we_need{$f}))		{		push(@ret,&walk($r));		}	$in{$f}--;	$done{$f}=join(" ",@ret);	return(@ret);	}sub parse_linux	{	local($name)=@_;	open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";	while (<IN>)		{		chop;		next if /^\s*$/;		if (/^[^[](.*):$/)			{			$file=$1;			$file="$1.c" if /\[(.*).o\]/;			print STDERR "$file\n";			$we_need{$file}=" ";			next;			}		@a=split(/\s*\|\s*/);		next unless $#a == 7;		next unless $a[4] eq "GLOB";		if ($a[6] eq "UNDEF")			{			$unres{$file}.=$a[7]." ";			}		else			{			if ($file{$a[7]} ne "")				{				print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";				}			else				{				$file{$a[7]}=$file;				}			}		}	close(IN);	}sub parse_solaris	{	local($name)=@_;	open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n";	while (<IN>)		{		chop;		next if /^\s*$/;		if (/^(\S+):$/)			{			$file=$1;			#$file="$1.c" if $file =~ /^(.*).o$/;			print STDERR "$file\n";			$we_need{$file}=" ";			next;			}		@a=split(/\s*\|\s*/);		next unless $#a == 7;		next unless $a[4] eq "GLOB";		if ($a[6] eq "UNDEF")			{			$unres{$file}.=$a[7]." ";			print STDERR "$file needs $a[7]\n" if $debug;			}		else			{			if ($file{$a[7]} ne "")				{				print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n";				}			else				{				$file{$a[7]}=$file;				print STDERR "$file has $a[7]\n" if $debug;				}			}		}	close(IN);	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -