2

Visual Studio 2013 で premake5 を使用しており、サードパーティ ライブラリをプロジェクトにリンクしようとしています。このライブラリのデバッグ バージョンには、通常どおり "d" サフィックスが付きます。サンプルスクリプトです。

solution "MySln"
    language "C++"
    configurations { "debug", "release" }

    d = ""

    configuration "debug"
        d = "d"

    configuration "release"
        d = ""

    libicu = { "icuin%{d}", "icuuc%{d}" }

project "core"
    kind "SharedLib"
    location "core"
    links(libicu)
    files { "core/**.h", "core/**.cpp" }

ただし、このスクリプトは両方の構成 (デバッグとリリース) で icuin.lib と icuuc.lib をリンクします。構成「リリース」ブロックのd = ""割り当てを削除すると、両方の構成がicuind.libとicuucd.libライブラリをリンクします。%{d} プレースホルダーの解決で、premake が変数の最新の定義を使用しているかのように見えます。スクリプトを変更して正しい動作を得るにはどうすればよいですか? ありがとう!

4

1 に答える 1