编译Lua时出现未解决的外部符号_LoadLibraryExA错误。

我正试图为MSVC14编译Lua 5.3.1。但是我得到以下错误:

LNK2019 unresolved external symbol _LoadLibraryExA referenced in function _lsys_load

它所指向的函数是:

static void *lsys_load (lua_State *L, const char *path, int seeglb) {
  HMODULE lib = LoadLibraryExA(path, NULL, LUA_LLE_FLAGS);
  (void)(seeglb);  /* not used: symbols are 'global' by default */
  if (lib == NULL) pusherror(L);
  return lib;
}

我不确定是什么原因导致这个错误,因为我以前曾经成功使用MinGW编译过。我该怎么做来解决这个问题?

点赞
用户1629262
用户1629262

请确保你的程序链接上了 Kernel32.libLoadLibraryExA 已在 Kernel32.lib 中定义。

请检查一下你的项目或构建设置确保 Kernel32.lib 是存在的。

2015-09-21 10:31:19
用户5652666
用户5652666

我遇到了相同的问题。我猜你使用vs2015编译了lua静态库时,创建了一个windows通用静态库项目(添加新项目->Visual C++->Windows->静态库),就像我一样。

删除你目前的项目并创建一个win32项目将解决这个问题。 添加新项目->Visual C++->Win32,然后在向导对话框中选择“静态库”。

2016-07-28 08:31:08