2009-08-18 11 views
16

Updateを使用:コンパイルするとき、私はこの警告を得る:異なる属性Visual StudioでのLinux/MinGWのでコンパイルのlibs/DLLを

こんにちは、

と見られる複数の「.textセクション」セクションで私はいくつかのライブラリをまとめました(.aと.dll)をMinGW Cross Compilerを使用してLinuxで実行します。私は正常にVisual Studio 2008でそれら(.a)にリンクできます。ただし、(.dllを使用して)実行すると、空のメモリアドレスを指すアドレスポインタで終了します。

VC08でこれらのライブラリを正常に使用できる方法やリストがありますか?

クロスコンパイラが生成

  1. * .dll.a
  2. * .dllは

おかげ

答えて

7

は、それを発見しました。

http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs

あなたは、DEFファイルを持っているし、インポートライブラリを生成するために、VCのlibツールを使用する必要があります。

+1

これはC++では動作しません – lalitm

3

それは同じ呼び出しを使用していない2つの政党のように私に聞こえますエクスポートされたdll関数が定義されている方法に問題があることを意味します。

ははるかにより最も簡単な方法は、次のようにエクスポートされた関数を定義することによってのextern「C」として関数を定義することであろう。

extern "C" 
{ 
    int MyExportedFunction(char *buffer, int length); 
    void MyOtherFunction(); 
}; 
+0

ヘッダのインポートにextern "C"がありました。 – jameszhao00

+0

私はちょうど気づいた。私は 複数の '.text'セクションが異なる属性で見つかりました コンパイル時。 – jameszhao00

関連する問題