2016-05-11 3 views
1

Я пытался следовать этому: http://www.troubleshooters.com/codecorn/lua/lua_lua_calls_c.htmвызова с кодом из Lua

Я попытался скомпилировать код на С, как говорится в руководстве:

gcc -Wall -shared -fPIC -o power.so -I/usr/include/lua5.1 -llua5.1 hellofunc.c

, но я получил http://pastebin.com/KQvA0qFH, которые я узнал, как ошибка, которую вы получаете, когда забываете включить lib или фреймворк, но я сделал -I/usr/include/lua5.1

Если это имеет значение, я бегу os x, и я установил lua с варевом

+0

Похоже, что '-llua5.1' не найдено. Вам нужно найти, где находится библиотека Lua. Возможно, доморощенный устанавливает новую версию Lua. – lhf

+0

@pytheos - не требуется пространство. – KevinDTimm

ответ

0

пока не могу комментировать, так что я должен разместить его в ответ, но

от ошибок я думаю, вы должны компилировать с -m32 переключателем для того, чтобы построить для библиотеки 32-битной

0

Это работает для меня, но я не использую доморощенного. Lua устанавливается в /usr/local.

% gcc -Wall -bundle -undefined dynamic_lookup -fPIC -o power.so hellofunc.c 
% lua 
Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio 
> require"power" 
> print(square(2)) 
Top of square(), nbr=2.000000 
4 
> print(cube(2)) 
Top of cube(), number=2.000000 
8 

Обратите внимание на строку компиляции использование -bundle -undefined dynamic_lookup вместо -shared и отсутствие -llua5.1.

В общем, вы не должны связывать базовую библиотеку Lua с динамическими библиотеками, такими как этот.

 Смежные вопросы

  • Нет связанных вопросов^_^