c – 如何静态构建和链接LuaJIT(VS 2013)
作者:互联网
前提:我希望我的C应用程序不依赖于任何Microsoft Visual C可再发行组件,因此我可以发送可立即使用的可执行文件.
我先做了什么:从DLL多线程(/ MD)切换运行时库到多线程(/ MT)以避免需要msvcr110.dll(并且不应该VS 2013需要120版本,因为它是编译器版本?).为此,我还必须使用相同的运行时库重新编译我正在使用的另一个库,这样才有效.我的.exe可以在任何地方运行而没有问题(或者我不知道,哈哈).
然后我添加了一些使用LuaJIT的功能.我已经通过随包提供的msvcbuild.bat构建了LuaJIT,它就像一个魅力,但现在我的可执行文件需要运行msvcr110.dll.我想这是因为LuaJIT是用/ MD标志编译的,但我想知道是否有一种正确的方法来做我想要的.
解决方法:
我没有对此进行测试,但您很可能需要在编译的每个部分上使用/ MT标志.在这种情况下,你的主程序和LuaJIT.在那个msvcbuild.bat文件(https://github.com/luvit/luajit-2.0/blob/master/src/msvcbuild.bat)中,您可以看到它们是明确指定/ MD(第17行). Methinks是你的问题.将其更改为/ MT并查看.
标签:luajit,c,visual-studio-2013,linker 来源: https://codeday.me/bug/20190723/1509008.html