math.hで定義されている定数がどのようにリンクされているかについて質問があります。"math.h"の_HUGEと__IMP__HUGE
ビジュアルスタジオ2010では、「HUGE_VAL」を使用するサードパーティライブラリを使用する「MD」の64ビットdll C++ライブラリを構築しています。ヘッダー "math.h"から、 "HUGE_VAL"は "_HUGE"と定義されているようです。私が構築しようとすると、リンクエラーが
エラーLNK2001結果:いくつかのグーグルを行った後、未解決の外部シンボル_HUGE
を、私は_HUGEがMSVCRT.LIBに定義されるべきだと思います。 MSVCRT.libはリンクされていますが、libcmt.libはリンクを張らなかったため、再定義エラーが発生します。
HUGE_VALを使用し、/ verboseをリンカオプションとして使用する単純なコンソールプログラムを作成すると、_ IMP _HUGEがリンクされていることがわかります。
私は本当に興味がありますか?_HUGEはどの段階に入りますか?IMP _HUGE?また、誰かに解決されていない_HUGEエラーを受けさせて、誰にどのように修正できるかについてのアイデアはありますか?
長い質問と考え方をお読みいただきありがとうございます。
私はVisual Studio(LinuxではGCCのみを使用しています)については何も知らず、HUGE_VALは標準です。おそらく、より新しい規格に厳密に従うようにコンパイラに依頼する必要がありますか? –
/MTでコンパイルされた.obj/.libファイルが混在しています。ミックスすることはできません。リンクされたすべてのコードで同じ設定を使用する必要があります。 –