マイクロソフトのVisual Studio '08でのlibpngをコンパイルするとき(すでに定義さSTDLIB機能):「エラーLNK2005」を回避するには?

StackOverflow https://stackoverflow.com/questions/1937937

質問

(なぜ私はこれを行うにしようとしています:私はWindows上でのlibpngのために事前に構築されたバイナリを使用しても運がなかった()試行錯誤の多くの時間にもかかわらず、それゆえ、今、それを自分自身をコンパイルしようとしている私が見つかりました。このに関するこの便利なブログ記事で、マイクロソフトのVisual Studio 2008のプロジェクトファイルとの完全な、残念ながらまだそれを使用することができていない。)

見つかったzlibバイナリ<のhref = "http://go2.wordpress.com/?id=725X1342&site=bobobobo.wordpress.com&url=http%3A%2F%2Fwww.zlib.netにリンクする際に

これは、正常にコンパイル%2Fzlib123-dll.zip」のrel = 『noreferrer』>ここのが、私は次のように受信テストファイルにリンクしようとしたときます:

    C:\Documents and Settings\Administrator\My Documents>cl "C:\Documents and Settin
    gs\Administrator\My Documents\test.c" "C:\Documents and Settings\Administrator\M
    y Documents\libpng.lib" -I "C:\Documents and Settings\Administrator\My Documents\include"

    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
    Copyright (C) Microsoft Corporation.  All rights reserved.

    test.c
    Microsoft (R) Incremental Linker Version 9.00.30729.01
    Copyright (C) Microsoft Corporation.  All rights reserved.

    /out:test.exe
    test.obj
    "C:\Documents and Settings\Administrator\My Documents\libpng.lib"
    MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _abort already defined in LIBCMT.lib(
    abort.obj)
    MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _fread already defined in LIBCMT.lib(
    fread.obj)
    MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _malloc already defined in LIBCMT.lib
    (malloc.obj)
    MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: _free already defined in LIBCMT.lib(f
    ree.obj)
    MSVCRTD.lib(MSVCR90D.dll) : error LNK2005: ___iob_func already defined in LIBCMT
    .lib(_file.obj)
    LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; u
    se /NODEFAULTLIB:library
    test.exe : fatal error LNK1169: one or more multiply defined symbols found

誰もがこれらのエラーを修正する方法についてのいくつかの光を当てるために気にしてもらえますか?

役に立ちましたか?

解決

の問題は、他のプロジェクトのプロパティに(その中にDLLなし)のマルチスレッドを使用している間に二つのプロジェクトの一つはのマルチスレッドDLLするを使用していることです - >構成プロパティ - > C / C ++ - >コード生成

私に数回起こっています。

でも解除のために設定することがビルドされることを「同期」することを確認し、それぞれの可能な組み合わせ(デバッグ、非デバッグ、など)のための

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top