C/C ++ Lua Embedded: отсутствует символ при требовании собственной библиотекиC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C/C ++ Lua Embedded: отсутствует символ при требовании собственной библиотеки

Сообщение Anonymous »

Я пытаюсь внедрить Lua (используя minilua.h) в свой проект. Чистые сценарии LUA работают, но все, что требует нативных библиотек, не снимается, заявляя, что NM .
не так, как это не так. это. < /p>
В конечном итоге я хочу создать пользовательскую среду выполнения Lua, в котором также может использовать нативные библиотеки Lua, но с одним двоичным.#include
#include
#include

#include "lua/minilua.h"

using std::ifstream;
using std::string;
using std::stringstream;

string load_file(string path) {
ifstream t(path);
stringstream buffer;
buffer
main.lua
package.path = "./lualib/?.lua;./lualib/?/init.lua;" .. package.path
package.cpath = "./lualib/?.so;./lualib/?/init.so;" .. package.path

local pegasus = require 'pegasus'

local server = pegasus:new({
port = '8080',
location = '.',
})

server:start(function(req, res)
print('started')

res:addHeader('Cache-Control', 'no-cache')
:write("hello world")
end)
< /code>
minilua.cpp
extern "C" {
#define LUA_IMPL
#include "minilua.h"
}
< /code>
для создания библиотеки < /p>
~/code/cpp/luastuff/lib/lua g++ -I. -c minilua.cpp
~/code/cpp/luastuff/lib/lua ar rcs libminilua.a minilua.o
< /code>
для создания двоичного < /p>
~/code/cpp/luastuff g++ -w --std=c++23 -I./lib ./lib/lua/libminilua.a main.cpp -o game && ./game
PANIC: unprotected error in call to Lua API (error loading module 'socket.core' from file './lualib/socket/core.so':
dlopen failed: cannot locate symbol "lua_type" referenced by "/data/data/com.termux/files/home/code/cpp/luastuff/lualib/socket/core.so"...)
Aborted
< /code>
Ищу символ < /p>
~/code/cpp/luastuff nm game | grep lua_type
00000000000360e0 T lua_type
0000000000036164 T lua_typename


Подробнее здесь: https://stackoverflow.com/questions/796 ... ve-library
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»