C++アプリケーションからExcelスプレッドシートを作成するために xlsLib を使用しようとしています。
問題は、xlsLibをコンパイルするときに、.aファイル(MinGWによって生成されたGCC静的ライブラリ)を提供することです。しかし、私のアプリケーションは、Visual Studioでのみコンパイルされる別のAPI(PhysX
)に依存しています。
したがって:GCC静的ライブラリ(xlslib.a
)Visual Studio静的ライブラリファイル(xlslib.lib
)?
MinGWで生成された静的ライブラリのアーカイブは、一般にVisual C++コンパイラ/リンカーと互換性があります。したがって、Visual Studioのプロジェクトプロパティで.a
ファイルをリンカー入力に追加することで、これらを直接使用できるようになります。
Properties
(Alt-F7)に移動します。Configuration Properties->Linker->Input
を開きます.a
アーカイブのリストを追加しますlibgcc.a
ライブラリも追加する必要がある場合がありますまた、混合Cランタイムライブラリproperties of C/C++->Code Generation->Runtime Library
に関する問題が発生する可能性がありますが、これはMinGWで使用するビルド構成によって異なります。 MinGWからのlibmsvcrt.a
に対してリンクする必要がある場合もありますが、多くの場合(ほとんどではないにしても)問題が発生します。
最後に、このMinGWとVisual C++の混合リンクは一般に機能しますが、Cモジュールでは機能しますが、C++では機能しません(私の知る限り)。
しかし、.aを使用すると、.exeは「デバッグ情報が見つかりません」をデバッグできなくなります。 –エントロピー5月22日12:27
これは、.aライブラリにデバッグに必要なデバッグ情報が含まれていないためです。デバッグする場合は、コンパイル時にデバッグ情報を追加するようコンパイラーに指示する必要があります。 mingwの場合、「-g
」を「make
」を実行するとCFLAGSに、「make CFLAGS="-g"
"
ここに私が役に立つとわかった2つのリソースがあります:
[切り抜き、間違ったリンク]
http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html
編集。探していたリンクが見つかりません。それまでの間、これをチェックしてください: http://www.willus.com/mingw/yongweiwu_stdcall.html