0

我想要执行的是 1- 查找和 2- 删除 (__c64) 的整个定义块:

unsigned long long __c64(unsigned int llvm_cbe_hi, unsigned int llvm_cbe_lo) {
unsigned long long llvm_cbe_retval;    /* Address-exposed local */
unsigned long long llvm_cbe_retval1;



  *(&llvm_cbe_retval) = (((((unsigned long long )(unsigned int )llvm_cbe_hi)) << 32ul) |  (((unsigned          long long )(unsigned int )llvm_cbe_lo)));
  llvm_cbe_retval1 = *(&llvm_cbe_retval);
  return llvm_cbe_retval1;
}

在一个项目中除了一个 .c 文件之外的所有文件中。由于在 .o 到可执行文件的编译阶段,我收到错误“__c64 的多重定义”,我想删除除一个之外的所有这些以解决问题。

有任何想法吗?

问候,

阿米尔

4

2 回答 2

0

如果所有文件中的功能布局完全相同,您可以试试这个

gvim -p *.c    // Open all relevant files in multiple tabs

然后执行这个

:bufdo %s/unsigned long long __c64\(.\+\n\)\+\(\n\)\+\(.\+\n\)\+}// | update

最后执行的“更新”将保存每个文件。

于 2012-09-21T14:57:38.730 回答
0

伙计们,我发现定义是动态变化的,我试图弄清楚:

sed '/^unsigned long long __c64/,/}/d'

幸运的是,它确实奏效了。

感谢所有的帮助。

阿米尔

于 2012-09-24T01:27:30.947 回答