请帮助我理解luajit的构建过程。
如果我想编译一个c库,我使用以下代码:
gcc -shared -fpic -O -I/path-to-luajit-headers/luajit-2.1 mylib.c -o mylib.so是否需要使用更具体的参数,如:
gcc -shared -fpic -O -I/path-to-luajit-headers/luajit-2.1 -L/path-to-luajit/lib mylib.c -o mylib.so -lluajit-2.1在第二种情况下,.so文件比第一个文件大两倍。有什么关系?使用-lluajit-2.1等是否重要?可能有更多的参数来定义luajit模式,而不是纯lua构建模式?
发布于 2016-05-03 22:04:17
解释器需要访问Lua,C扩展模块需要访问Lua,两者都需要链接到同一个库,因为否则会发生糟糕的事情(例如,会出现两组静态变量)。
实现这些需求有两种常见的方法。
-Wl,-E链接器标志。由于您似乎运行了Unixoid,您的第一种方法可能是正确的(因为您的解释器可能已经重新导出了Lua ),第二种方法将在Lua中链接两次。
https://stackoverflow.com/questions/36958862
复制相似问题