0

この質問とその回答は、コマンド ラインの順序をリンクすることの重要性を説明しています。

ただし、次のような行を含む多くのメイクファイルを扱っています

$(CC) $(LDFLAGS) $^ -o $@

明らかに、これらのようなコマンドは一部のシステムでは機能しますが、私のシステムでは機能しません。このようなすべての Makefile を見つけてパッチを適用する以外に、この動作を回避する方法はありますか?

gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 を使用しています

明確にするために編集:
私は仕事の一環として多くのパッチ適用と統合を行っています(通常はbuildrootまたはLTIB)、このように記述された複数のmakefileに出くわします。また、Web 上のいくつかのコンパイル コマンドの例は、同じパターンに従います。

4

1 に答える 1

1

したがって、問題は、すべてのライブラリ オプションを .o ファイルの前に配置する makefile を作成した愚か者がいるということです。おそらく、気にしない壊れたツールチェーンがいくつかありますが、それは役に立ちません。

ここには 2 つのオプションしかありません。

  1. メイクファイルを修正します。
  2. オプションを並べ替えるコンパイラ ラッパーを作成します。このようなラッパーは一般的に壊れますが、makefile で使用される正確なパターンで動作する可能性があります。

--start-groupここで役立つかどうか疑問に思いましたが、簡単な実験ではそうではないことが示唆されています.

于 2012-11-13T13:30:57.317 に答える