Как вы настраиваете LuaBind с Visual Studio 2012?

Я пытался сделать это в течение дня. Я прочитал документацию и искал онлайн помощь. Я просто не могу понять это между различными версиями boost / lua / luabind, используемыми с предварительно скомпилированными заголовками, и VS2010 против VS2012.

Я нашел отличный сайт здесь
http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/
но когда я следую этим инструкциям, я получаю ошибки LNK2019 (я предполагаю, потому что он собирает luabind / boost / lua для VS2010.

Я также нашел это, http://urbsch.at/?read=1 Я взял проект и изменил адреса на свои файлы boost / lua, и он скомпилировался нормально, но когда я попытался запустить свой проект, использующий luabind, я все еще получил ошибки LNK2019.

Я использую Visual Studio 2012. Если бы кто-то мог перечислить некоторые пошаговые инструкции, я был бы очень благодарен. В том числе что скачивать и куда и что добавлять в свойствах проекта. Потому что в этот момент я уверен, что я испорчу это, если это не надежно.

Это одна из 49 ошибок, с которыми я часто сталкиваюсь.

1> ScriptManager.obj: ошибка LNK2019: неразрешенный внешний символ _lua_gettop, указанный в функции «public: __thiscall luabind :: adl :: index_proxy :: index_proxy (класс luabind :: adl :: object const &, struct lua_State *, char const (&) [13]) «(?? $? 0 $$ BY0N @ $$ CBD @? $ Index_proxy @ Vobject @ adl @ luabind @@@ adl @ luabind @@ QAE @ ABVobject @ 12 @ PAUlua_State @@ AAY0N @ $$ CBD @ Z)

1

Решение

Хорошо, я понял это (некоторое время назад). Вот полные, пошаговые, дурацкие инструкции о том, как заставить это работать.

1) Загрузите демо здесь http://blog.nuclex-games.com/tutorials/cxx/luabind-introduction/

2) Создайте новый файл (скажем, «Детали») для хранения трех частей, необходимых для luabind.

3) Откройте справочную папку из вышеприведенной загрузки и переместите эти 3 папки в папку «Parts», которую вы только что создали.

4) Теперь вам нужно перекомпилировать новые .lib файлы для Lua и LuaBind. Откройте файл LibrarySources.7z из загрузки выше.

4) Создайте новый проект Visual Studio 2012 с именем Lua, откройте распакуйте все файлы из «LibrarySources.7z / lua-5.2.0 / src» в место, где Visual Studio обычно помещает ваши файлы .cpp и .h.

5) Добавьте файлы в проект (файлы .h в папке заголовка проводника проекта и файлы .c в папке источника).

6) Перейдите в SolutionExplorer-> Properties-> General-> Configuration_Type и установите для него статическую библиотеку (.lib)

7) Скомпилируйте проект.

8) Перейдите в папку debug вашего проекта lua и подайте файл lua.lib, который вы создали.

9) Теперь перейдите к созданному вами блоку «Parts» в «Parts / Lua». Там вы должны увидеть 2 папки с msvc-10.0-x64 / 86, создать новую с msvc-11.0-x86 и поставить lua. lib файл, который вы только что создали в этом.

10) Для luabind вам нужно сделать то же самое, однако вам нужно только извлечь папку src из luabind в ваш проект.

11) Теперь в свойствах проекта C / C ++ -> Дополнительные каталоги включения добавьте «C: / Parts / boost / include», «C: / Parts / lua / include» и «C: / Parts / luabind / include»

12) Теперь перейдите в Linker-> General-> Additional Library Directory и добавьте «C: /Parts/lua/msvc-11.0-x86»

13) Теперь вернитесь в обозреватель решений-> Свойства-> Общие и измените его на статическую библиотеку.

14) Скомпилируйте его, перейдите в его папку отладки и добавьте созданный вами luabind.lib в parts / luabind / msvs-11.0-x86, как вы это сделали для lua.

15) Теперь в вашем проекте вы хотите использовать luabind с Go to Properties-> C / C ++ -> General и добавить «C: / Parts / boost / include», «C: / Parts / lua / include» и « C: / Детали / Luabind / включают»

16) Перейдите в properties-> linker-> general-> Additional Library Directory и добавьте адреса к обоим .lib-файлам, которые вы только что создали.

Плавник.

3

Другие решения

Я не могу опубликовать полный ответ прямо сейчас, потому что я разговариваю по телефону, но я должен был кое-что сделать, чтобы luabind работал правильно.

  1. Luabind 0.9.1 не работает с lua 5.2.x. Только с 5.1.x.

  2. Если вы собираете lua, не используйте компилятор c ++. Lua bind использует extern C для импорта заголовков lua, а использование c ++ вызовет некоторые конфликты.

  3. Если вы используете предварительную сборку lua, убедитесь, что она была собрана с vs2012.

0

По вопросам рекламы [email protected]