Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
luaopen_my_示例编译swig包装后未定义_Lua_Wrapper_Swig - Fatal编程技术网

luaopen_my_示例编译swig包装后未定义

luaopen_my_示例编译swig包装后未定义,lua,wrapper,swig,Lua,Wrapper,Swig,我现在正潜入SWIG作为创建Lua绑定的一种方法,我遇到了一个障碍。我制作了我的接口文件,并从中构建了一个共享对象文件,没有任何问题。但是,当我运行Lua并尝试要求共享对象时,我得到以下结果: Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio require("my_example") error loading module 'my_example' from file './my_example.so': ./my_

我现在正潜入SWIG作为创建Lua绑定的一种方法,我遇到了一个障碍。我制作了我的接口文件,并从中构建了一个共享对象文件,没有任何问题。但是,当我运行Lua并尝试要求共享对象时,我得到以下结果:

Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio require("my_example") error loading module 'my_example' from file './my_example.so': ./my_example.so: undefined symbol: luaopen_my_example Lua 5.1.4版权所有(C)1994-2008 Lua.org,临市局里约 要求(“我的例子”) 从文件加载模块“my_example”时出错。/my_example.so': ./my_example.so:未定义符号:luaopen_my_example 堆栈回溯:

[C]: ? [C]: in function 'require' stdin:1: in main chunk [C]: ? [C] :? [C] :在函数“require”中 stdin:1:在主块中 [C] :? 我似乎在网上找不到任何描述这种情况的东西,所以我想我应该在这里发布。有没有SWIG大师?我正在包装的类有几千行长(并且是专有的),或者我会在这里发布它


谢谢D

您使用的是什么版本的SWIG,在什么平台上

我在Cygwin下运行的稍显陈旧的SWIG版本1.3.29在其生成的包装文件中使用了
#define SWIG_init
,将
require
需要的名称指定为
luaopen_mod
,其中
mod
是SWIG
顶部的
%module
语句中使用的名称文件我包装的模块在Windows上加载并使用Lua5.1

您可能需要做一些事情来确保符号被导出,而不是名称被标记为一个永远不会被LUA发现的C++名字。我在包装C结构和部分Windows API,所以没有处理那个包装器中的任何C++特定问题。然而,即使不涉及SWIG,意外名称损坏也是模块加载问题的常见原因。

/facepalm

我在接口(.I)文件中错误地命名了模块。无论如何谢谢你