Qt with Lua |放置 lua 文件的位置
Qt with Lua | Where to place lua file(s)
我创建了一个 cpp 文件,其中包含实现对 lua 调用的 main 方法。编译+执行qt项目时,我收到以下错误:
问题是luaPANIC:调用 Lua API 时出现不受保护的错误(尝试调用字符串值)
找不到要执行的lua文件(至少我认为是这样)。所以我将文件复制到所有调试目录和主目录,但它仍然不起作用。
谢谢你帮助我!
主.cpp
#include <stdio.h>
extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
lua_State* L;
int main(int argc, char *argv[])
{
/* initialize Lua */
L = luaL_newstate();
/* load Lua base libraries */
luaL_openlibs(L);
/* load the script */
luaL_loadfile(L, "test.lua");
lua_call(L, 0, 0);
/* cleanup Lua */
lua_close(L);
}
和文件测试.lua
-- test
print("Hello World")
鉴于这是一个运行时文件操作,该函数可能只在当前目录中查找。
似乎Qt使用用户的目录作为默认路径。
你可以用以下方法验证这一点:(谢谢里奇)
QDir dir(".");
qDebug() << dir.absolutePath();
将lua脚本放入此文件夹时,一切都像魅力一样工作。
可以使用以下命令设置工作目录:
QDir::setCurrent()
并结合
QCoreApplication::applicationFilePath()
可以将路径设置为exe辞职的位置。
这与Qt没有真正的关系,因为你没有在软件中使用任何Qt API。
应检查 lual_loadfile
方法返回的状态,如本例所示。这应该会给你一些关于出了什么问题的额外线索。
以防万一,有一个QtLua模块可能会引起人们的兴趣。
相关文章:
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 将文件复制到自定义位置,存在字符串转换问题
- 奇怪的Arduino C++编译错误取决于文件位置
- 在 elf 文件中查找全局变量的位置
- 可以将Boost消息队列文件重定向到用户指定的位置
- 您如何确定 MySQLCPPConn 库文件的位置?
- 是否可以将要"ShellExecute"的文件包含在 dll 中?如果是这样,"ShellExecute"中的文件位置应该是什么?
- 快速访问 ifs() C++中的文件位置
- 从C++中父文件夹的父文件夹提供文件位置
- MFC 打开文件位置并选择(突出显示)该文件
- 如何从HTTP在C++中打开一个URL不是文件位置的文件
- 如何处理不同 Linux 发行版上的不同头文件位置
- 配置文件位置和二进制文件,并构建像autoconf这样的系统
- 文件类型以编程关联和文件位置(Windows)
- Visual Studios (2012 pro 主要是) <从父级继承或项目默认值的默认值的文件位置>
- Tesseract -更改语言文件位置
- 更改Xcode c++应用程序外部文件位置