0

私が実行したいのは、(__c64) の定義ブロック全体を 1- 検索して 2- 削除することです。

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;
}

プロジェクト内の 1 つを除くすべての .c ファイル。実行ファイルへの .o のコンパイル段階で、「__c64 の複数の定義」というエラーが発生したので、問題を解決するために 1 つを除いてすべて削除しようと考えていました。

何か案は?

よろしく、

アミール

4

2 に答える 2

0

定義が動的に変更されていることに気付いたので、次のようにsthを理解しようとしました。

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

そしてそれは幸いにも機能しました。

すべての助けをありがとう。

アミール

于 2012-09-24T01:27:30.947 に答える
0

関数のレイアウトがすべてのファイルでまったく同じである場合は、これを試すことができます

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

次に、これを実行します

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

最後に実行される「update」は各ファイルを保存します。

于 2012-09-21T14:57:38.730 に答える