2012-03-24 5 views
0

Visual Studio 2010 Expressの動的ライブラリtmxParser.libに静的ライブラリをリンクしようとしています。私は静的ライブラリを動的ライブラリの依存として設定しています。 VSがビルドすると、静的ライブラリが正常に構築され、tmxParser.libが作成されます。 VSがダイナミックライブラリをビルドするときにリンカエラーが発生します。私はプロパティページ - >構成プロパティ - > C/C++ - >コード生成 の下でランタイムライブラリと一致させようとしましたが、それは役に立ちません。誰もが考えている?スタティックライブラリをVisual Studioのダイナミックライブラリにリンクすることはできますか?

2>LIBCMTD.lib(fopen.obj) : error LNK2005: _fopen already defined in s3e_d.lib(iwcrt_stdio.obj) 
2>LIBCMTD.lib(open.obj) : error LNK2005: __open already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(open.obj) : error LNK2005: __sopen already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(chsize.obj) : error LNK2005: __chsize already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(read.obj) : error LNK2005: __read already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(close.obj) : error LNK2005: __close already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(lseek.obj) : error LNK2005: __lseek already defined in s3e_d.lib(iwcrt_win32.obj) 
2>LIBCMTD.lib(setmode.obj) : error LNK2005: __setmode already defined in s3e_d.lib(iwcrt_win32.obj) 
+0

あなた専用の専用フォーラムをご利用ください。http://www.madewithmarmalade.com/devnet/forum/general –

+0

お返事ありがとうございます。私はすでに彼らのフォーラムを試みたが、答えは得られなかった。 – user1290166

+0

はい、それは典型的です。 「どこでも走れる」約束実行モデルとのやりとりに支えられ、あなたの運勢に反比例します。 –

答えて

0

あなたはそれが依存関係として設定されていると言うとき、あなたはそう、あなたはそれがプロジェクトの依存関係として設定したり、

一般

Project Properties -> Librarian->General -> Additional Dependencies

0

で「追加の依存」の下にある持っている意味しています。

ライブラリー(marmalade libraryですか?)は、C++ランタイムライブラリーの一部のメソッドを実装しているようです。おそらく、このlibは、標準のランタイムライブラリをリンクせずに使用されるはずです。

考えられる解決策:

  • があなたのDLLでC++ランタイムリンクしません。
    • エキス、すべての.OBJ:あなたは、彼らがこれを
    • がにLIB.EXEまたはDUMPBIN.EXEを使う動作するようになっていると思ったかのlibを作る人を依頼だけ薄いラッパー
    • 書く場合それは可能なはずLIB
    • のファイルは

後者はobvioある

  • 再作成の.objファイルからlibが競合記号を削除しますusly醜いハック、ソースや元の開発者がもう利用できない場合に備えて予約する必要があります。

  • +0

    助けてくれてありがとう。私がtmxParserが静的ライブラリであると思うのは、dllから静的ライブラリ(.lib)への動的ライブラリの出力タイプがすべてのリンカエラーがなくなったからです。しかし、アプリケーションは実行時にエラーになります。私は主なアプリケーションにtmxParserのソースを含めてしまった。私は標準のランタイムライブラリを必要としないようにtmxParserコードを変更する必要がありましたが、 – user1290166

    関連する問題