Visual Studio 2013错误LNK2019

时间:2014-09-09 12:00:40

标签: c++ lua visual-studio-2013 linker-errors

我真的有一个问题,我不明白它为什么会存在。 我想使用LUA作为脚本语言将其嵌入到C ++应用程序中。

我已经下载了LUA-binaries(版本5.2.3 win64 vc12;在撰写本文时,是最新的)。

首先,我尝试了一个简单的" Hello World"看起来像这样:

main.cpp中:

#pragma comment(lib, "lua52")

#include <stdio.h>
#include "lua.hpp"

int main(int argc, char* argv[])
{
  printf("Hello World of c++\n");

  lua_State* L = luaL_newstate();

  luaopen_base(L);

  if (luaL_dofile(L, "test01.lua"))
  {
      printf("%s\n", lua_tostring(L, -1));
  }

  lua_close(L);

  getchar();

  return 0;
}

test01.lua:

  

打印(&#34; LUA的Hello World; \ n&#34;)

正如您所看到的,这是一个非常简单的代码。

我编辑了include目录以包含头文件的路径,我编辑了库目录以包含库lua52.lib的路径。

但由于某种原因,我收到错误:&#34;错误LNK2019 ......&#34;

我希望有人知道该怎么做。

谢谢!

1 个答案:

答案 0 :(得分:0)

&#34; bitness&#34;需要对应,库和目标需要建立在同一个目标平台上;所以对于64位库,你的二进制文件也需要是64位的;这同样适用于32位版本。


您需要链接库;

#pragma comment(lib, "lua52.lib") // note the .lib

该问题被标记为C ++。 Lua似乎是implemented in C,因此在您的C ++应用程序中(如果是这样编译的;这是默认设置),您可能需要将其包含为;

extern "C" {
  #include "lua.hpp"
}