루아 5.3을 32 비트 C++ DLL로 컴파일하고 실행합니다. DLL에는 lua.cpp 및 luac.cpp를 제외한 모든 lua 코드가 들어 있습니다. exe는 lua.cpp를 컴파일하고 DLL을 사용하여 루아 인터프리터를 실행합니다. 이것은 명령 행에서 독자적으로 실행할 때 잘 동작합니다. 이 DLL과 exe를 사용하여 IDE에서 실행할 수 있기를 바랍니다.루아가 C++로 컴파일 될 때 ZeroBrane Studio IDE 디버거를 사용하는 방법
/ZeroBraneStudio/bin/lua53.dll
및 lua53.exe
을 내 버전으로 바꾸면 스크립트 (두 개의 녹색 화살표 클릭)를 실행할 수 있습니다. 그러나 디버깅 다음과 같은 오류를주고, 작동하지 않습니다
The procedure entry point luaL_addlstring could not be located in the dynamic link library lua53.dll.
나는 디버거가 luasocket을 활용하기 때문에 이런 일이 있음을 볼 수 있습니다. \ZeroBraneStudio\bin\clibs53\socket\core.dll
은 lua53.dll
에 종속적이며 c로 컴파일 된 lua를 포함 할 것으로 예상됩니다.
그래서 올바른 해결책은 무엇입니까? luasocket을 C++로 컴파일하는 것입니까?
(그리고, 그렇다면, 사람이 그렇게에 대한/지침 지침이 있는가? 나는이에 아무것도 찾을 수 없었습니다.)
감사합니다.
안녕하세요 Paul, DLL이 맹 글링 된 C++ 함수 이름을 내보내므로 함수를 찾을 수 없다는 오류 메시지가 표시됩니다.이름 맹 글링은 함수 이름이 C와 C++간에 다르게 내 보내어진다는 것을 의미합니다. 따라서 luasocket core.dll은 C 이름 'luaL_addlstring'을 찾고 있지만 맹 글링 된 이름 만 존재합니다. 루아 인터프리터 exe가 DLL을로드하여 실행할 수 있기 때문에 기호가 올바르게 내보내 졌음을 확신합니다. 구성 설정에 대한 정보를 보내 주셔서 감사합니다. –