2016-07-14 2 views
2

C++에서 루아를 사용하려고하는데 코드를 컴파일 할 수 없습니다. 현재 루아의 최신 버전 5.3을 사용하고 있습니다. 내 IDE는 Code :: Blocks입니다. 지금까지 나는이 같은 가이드를 다음했다 : https://eliasdaler.wordpress.com/2013/10/11/lua_cpp_binder/ http://gamedevgeek.com/tutorials/getting-started-with-lua/C++에서 Lua 사용

을들은 C에서 루아를 설정하는 방법 :: B를 대해 많이 설명하지 않는다 그러나. 루아의 웹 사이트에서 이진 zip과 소스를 모두 다운로드했습니다. src 폴더에서 파일을 어디에 넣어야할지 모르겠습니다. 지금까지 나는 lauxlib.h의 lua.h의 luaconf.h 및 include 디렉토리에 lualib.h을 넣어했습니다, 그리고 MAIN.CPP에 다음 코드를 사용 : 지금까지

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

을 다음 작은 스 니펫을 실행하려고합니다.

lua_State* L; 
L = luaL_newstate(); 
luaL_openlibs(L); 
luaL_dofile(L, "test.lua"); 
lua_close(L); 

그러나 첫 번째 줄에는 항상 오류가 발생합니다. 내가 지금 받고있는 오류는 참조가 'luaL_newstate'로 정의되지 않았 음을 나타낸다.

어쩌면 내가 소스에서 lib 디렉토리에 몇 가지 파일을 넣어야합니까? 아니면 '프로젝트 빌드 옵션'메뉴의 '기타 링커 옵션'에 추가해야 할 것이 있습니까?

편집 : 나는이 질문을 발견했습니다 그 동안

: Lua 5.3 undefined references

내가 'Opther 링커 옵션'에 -llua을 넣어야 할 것 같다,하지만 더있다 .a, .so 또는 .lib 파일은 lua.org의 패키지에 포함되어 있습니다.

+2

나는 C :: B에서 그렇게하는 법을 모르지만, 당신은 lua 라이브러리를 링크해야만한다. 또는 프로젝트에 소스 파일을 포함시킬 수도 있지만 "올바른"방법은 아닙니다. 다른 라이브러리와 마찬가지로 라이브러리를 링크하면됩니다. – pschulz

+0

@pschulz 루아는 단지 소스 파일을 추가 할 수 있도록 설계되었다고 생각했습니다. – immibis

+0

@pschulz 라이브러리 연결 방법에 대한 일반적인 설명이 있습니까?이 글을 검색 할 때마다 포럼에 대한 모호한 설명을 얻지 만, 단계별 자습서로 잘 작성된 단계는 없습니다. 그 언어를 배웠을 때 나는 아주 사소한 것을 놓쳤다는 느낌을 정말로줍니다. 이전에 SDL을 설치했을 때 Lazyfoo가 모든 것을 자세히 설명했기 때문에 운이 좋았습니다. 이 시점에서 나는 모든 .h 파일을 포함 라이브러리에 있고 모든 .c 파일은 .cpp 파일 옆에 있지만 여전히 동일한 오류가 발생합니다. – Letokteren

답변

0

마침내 질문에 언급 된 코드를 실행할 수 있습니다. 여기 내가 한 일이있다.

  1. 대신 루아의 사이트에서 소스를 다운로드하는, 나는 최신 LuaDist 다운로드. 이 사이트는 Lua.org의 download 페이지의 바이너리 카테고리 아래에서 액세스 할 수도 있습니다.

  2. 그 zip에는 일반적인 include 및 lib 폴더가 있습니다.

  3. 적절한 폴더에 모두 복사했고 빌드 옵션 메뉴에서 컴파일러와 링커의 경로를 설정했습니다.

  4. 그런 다음 링커 설정 탭에서 lib 디렉토리에 liblua.dll.a 파일을 추가했습니다.이 파일은 lib 디렉토리에 있습니다. 마지막 두 단계에서는 SFML setup page에서 추가 도움말을 찾을 수 있습니다.

  5. 마지막 단계에서 컴파일 된 실행 파일 옆에 liblua.dll 파일을 배치했습니다.