問題タブ [weak-linking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - __attribute__((weak) ) 関数は未定義の参照になります
現在、MinGW と CMake を使用して STM32 の単体テスト用に CMock をセットアップしようとしています。構成ファイルで、:weak: オプションを設定して、生成されたモックが弱い関数を提供するようにしました。一例は次のとおりです。
ただし、コンパイルすると、HAL_TIM_IC_Init エラーへの未定義の参照が表示されます。
属性を削除しweak
ても、未定義の参照エラーは発生しません。しかし、HAL レイヤーによって提供されるいくつかの関数をオーバーライドする必要があるため、モック ライブラリを弱いものにする必要があります。そうしないと、複数の定義エラーが発生します。
だから私の質問は、なぜ弱い属性が未定義の参照エラーを引き起こしたのか、どうすればそれを回避できるのでしょうか?