3

これは、通常のグーグル/スタック オーバーフロー/ユーチューブ ルーチンの使用の根底に到達できないことに気付いた最初の質問です。

私の環境が開発の準備ができていることを確認するためだけに、C++ 環境内で最小限の Lua プログラムをコンパイルしようとしています。Lua 言語は、後で私の C++ ゲームのユーザー インターフェイス プログラミングに使用されます。

私の環境に関する最初のいくつかの基本的な情報:

Windows 7 64 ビット

ビジュアルスタジオ 2010

Lua for Windows 5.1 (Google コードからダウンロードできる最新のビルド)

コンパイルしようとしているコードは次のとおりです。

// UserInt.cpp : Defines the entry point for the console application.
//
#pragma comment(lib,"lua5.1.dll")
#include "stdafx.h"
#ifndef __LUA_INC_H__
#define __LUA_INC_H__

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



int _tmain(int argc, _TCHAR* argv[])
{
    lua_State * ls = luaL_newstate();
    return 0;
}

#endif // __LUA_INC_H__

これが私が得ているエラーです:

1>UserInt.obj : error LNK2019: unresolved external symbol _luaL_newstate referenced in function _wmain 1>c:\users\deank\documents\visual studio 2010\Projects\UserInt\Debug\UserInt.exe : fatal error LNK1120: 1 unresolved externals

私が試したこと:

lua_open() (および他のいくつかの関数) が使用されなくなったことについて読んだので、代わりに newstate 関数を試しました。同じエラーが発生します。これは何よりも健全性チェックでした。私は 5.2 ではなく 5.1 を使用しているので、これはあまり重要ではないと思います。

私もこのスレッドを読みました最小のLuaプログラムをリンクできませんが、そのOPと同じ環境を実行していないため、役に立たないようです。私は単純な Windows 7 とビジュアル スタジオ環境を使用しています。

一番上のプラグマ コメント行は、別のスレッドで見たものです。それがあってもなくても同じエラーが発生します。

Visual Studio の C++ ディレクトリ エリアに移動し、lua インクルードをインクルードに追加し、lua lib をライブラリに追加しました。

したがって、私のプログラムは .h とシンボルを見ているようです。しかし、何らかの理由で、関数の .cpp 実装を取得していません。これが、.dll を直接含めることが問題の解決に役立つことを期待していた理由ですが、そうではありませんでした。

だから、これを自分で解決するすべての選択肢を使い果たしたような気がします。誰かが私がここで前進するのを手伝ってくれることを願っています. Lua はスクリプトを作成するのに最適な言語のようで、開発のために自分の環境を整えたいと思っています。

それが私の側のばかげたエラーであることを願っています。できる限り多くの情報を提供したと思います。詳細が必要な場合は、提供できる場合は情報を更新します。

編集1

このCan't build lua a project with lua in VS2010 で解決策を試しました。ライブラリの問題が疑われます

それもうまくいきませんでした。

4

1 に答える 1

9

ライブラリ (.LIB) ファイルを用意し、それを VS に追加する必要があります。[Project] > [Properties] を使用して [Linker] > [Input] に移動し、完全な .lib ファイル名を [Additional Dependencies] 行に追加します。.LIB は .DLL とは異なることに注意してください。

個人的には、ダイナミック リンク ライブラリを参照するよりも、ソース コードをプロジェクトに追加する方が好きです。次の手順では、そのようにすることができます。

  1. ソース コード ( http://www.lua.org/ftp/ ) をダウンロードし、解凍します。

  2. Visual Studio で、[ファイル] > [新規] > [プロジェクト] を選択し、[Visual C++、Win32、「Win32 コンソール アプリケーション」] を選択します。

  3. Visual Studio のプロジェクトで、luac.c を除くすべてのソース コードを追加します。また、VS が作成したファイルから main() 関数を削除します。通常、これには、指定したプロジェクトの名前に .cpp ファイル拡張子が付けられます。このファイルをプロジェクトからまとめて削除することができます。

  4. ビルドして実行します。

これは Lua コンソールです

于 2012-08-06T21:08:14.673 に答える