2

VS2012 を使用して、lua を C++ アプリケーションに静的にリンクしようとしています。sourceforge から vs11_lib ファイルをダウンロードし、このファイル lua52.lib のリンカー依存関係を追加しました。コンパイルしようとすると、あらゆる種類のリンク エラーが発生するようになりました。手順を間違えたと確信しています。繰り返しますが、アプリケーションをスタンドアロンで実行したいので、これを静的に行っています。どんなポインタでも大歓迎です!

4

2 に答える 2

2

Lua ソースは、C または C++ としてコンパイルできます。使用しようとしている lib ファイルは C としてコンパイルされており、それらのヘッダーを C++ としてインクルードしていると思います。結果として、関数の名前が異なります。したがって、リンクエラー。

C++ ファイルで C ライブラリを使用している場合は、次のようにライブラリのヘッダーをラップします。

extern "C" {
    #include "lua.h"
    #include "lualib.h"
    #include "lauxlib.h"
}

Visual Studio で Lua を使用する詳細な手順については、この記事を参照してください。

アップデート:

@lhf がコメントで述べているように、Lua の新しいディストリビューションlua.hppは、同じことを行う C++ ヘッダーを提供します。PILの古いディストリビューションについて説明されています。

于 2013-05-08T11:27:04.933 に答える